Module Cmdliner.Manpage
Man page specification.
Man page generation is automatically handled by Cmdliner
, consult the details.
The block
type is used to define a man page's content. It's a good idea to follow the standard manual page structure.
References.
man-pages(7)
, Conventions for writing Linux man pages.
Man pages
type block
=[
|
`S of string
|
`P of string
|
`Pre of string
|
`I of string * string
|
`Noblank
|
`Blocks of block list
]
The type for a block of man page text.
`S s
introduces a new sections
, see the standard section names.`P t
is a new paragraph with textt
.`Pre t
is a new preformatted paragraph with textt
.`I (l,t)
is an indented paragraph with labell
and textt
.`Noblank
suppresses the blank line introduced between two blocks.`Blocks bs
splices the blocksbs
.
Except in
`Pre
, whitespace and newlines are not significant and are all collapsed to a single space. All block strings support the documentation markup language.
val escape : string -> string
escape s
escapess
so that it doesn't get interpreted by the documentation markup language.
type title
= string * int * string * string * string
The type for man page titles. Describes the man page
title
,section
,center_footer
,left_footer
,center_header
.
type xref
=[
|
`Main
|
`Cmd of string
|
`Tool of string
|
`Page of string * int
]
The type for man page cross-references.
`Main
refers to the man page of the program itself.`Cmd cmd
refers to the man page of the program'scmd
command (which must exist).`Tool bin
refers to the command line tool namedbin
.`Page (name, sec)
refers to the man pagename(sec)
.
Standard section names and content
The following are standard man page section names, roughly ordered in the order they conventionally appear. See also man man-pages
for more elaborations about what sections should contain.
val s_synopsis : string
The
SYNOPSIS
section. By default this section is automatically created byCmdliner
for you, unless it is the first section of your term's man page, in which case it will replace it with yours.
val s_description : string
The
DESCRIPTION
section. This should be a description of what the tool does and provide a little bit of usage and documentation guidance.
val s_common_options : string
The
COMMON OPTIONS
section. For programs with multiple commands a section that can be used to gather options common to all commands.
val s_exit_status : string
The
EXIT STATUS
section. By default term status exit codes get listed here.
val s_environment : string
The
ENVIRONMENT
section. By default environment variables get listed here.
val s_environment_intro : block
s_environment_intro
is the introduction content used by cmdliner when it creates thes_environment
section.
Output
The print
function can be useful if the client wants to define other man pages (e.g. to implement a help command).
type format
=[
|
`Auto
|
`Pager
|
`Plain
|
`Groff
]
The type for man page output specification.
`Auto
, formats like`Pager
or`Plain
whenever theTERM
environment variable isdumb
or unset.`Pager
, tries to write to a discovered pager, if that fails uses the`Plain
format.`Plain
, formats to plain text.`Groff
, formats to groff commands.
val print : ?errs:Stdlib.Format.formatter -> ?subst:(string -> string option) -> format -> Stdlib.Format.formatter -> t -> unit
print ~errs ~subst fmt ppf page
printspage
onppf
in the formatfmt
.subst
can be used to perform variable substitution,(defaults to the identity).errs
is used to print formatting errors, it defaults toFormat
.err_formatter.