Module Cmdliner_manpage

Manpages.

See Cmdliner.Manpage.

type section_name = string
type block = [
  1. | `S of section_name
  2. | `P of string
  3. | `Pre of string
  4. | `I of string * string
  5. | `Noblank
  6. | `Blocks of block list
]
val escape : string -> string

escape s escapes s from the doc language.

type title = string * int * string * string * string
type t = title * block list
type xref = [
  1. | `Main
  2. | `Cmd of string
  3. | `Tool of string
  4. | `Page of string * int
]

Standard section names

val s_name : section_name
val s_synopsis : section_name
val s_description : section_name
val s_commands : section_name
val s_arguments : section_name
val s_options : section_name
val s_common_options : section_name
val s_exit_status : section_name
val s_environment : section_name
val s_files : section_name
val s_bugs : section_name
val s_examples : section_name
val s_authors : section_name
val s_see_also : section_name
val s_none : section_name

Section maps

Used for handling the merging of metadata doc strings.

type smap
val smap_of_blocks : block list -> smap
val smap_to_blocks : smap -> block list
val smap_has_section : smap -> sec:section_name -> bool
val smap_append_block : smap -> sec:section_name -> block -> smap

smap_append_block smap sec b appends b at the end of section sec creating it at the right place if needed.

Content boilerplate

val s_exit_status_intro : block
val s_environment_intro : block

Output

type subst = string -> string option

The type for variable substitution functions.

type format = [
  1. | `Auto
  2. | `Pager
  3. | `Plain
  4. | `Groff
]
val print : ?env:(string -> string option) -> ?errs:Stdlib.Format.formatter -> ?subst:subst -> format -> Stdlib.Format.formatter -> t -> unit

Printers and escapes used by Cmdliner module

val subst_vars : errs:Stdlib.Format.formatter -> subst:subst -> Stdlib.Buffer.t -> string -> string

subst b ~subst s, using b, substitutes in s variables of the form "$(doc)" by their subst definition. This leaves escapes and markup directives $(markup,…) intact.

  • raises Invalid_argument

    in case of illegal syntax.

val doc_to_plain : errs:Stdlib.Format.formatter -> subst:subst -> Stdlib.Buffer.t -> string -> string

doc_to_plain b ~subst s using b, substitutes in s variables by their subst definition and renders cmdliner directives to plain text.

Raises Invalid_argument in case of illegal syntax.

val doc_to_styled : ?buffer:Stdlib.Buffer.t -> errs:Stdlib.Format.formatter -> subst:subst -> string -> string

doc_to_styled is like doc_to_plain but uses ANSI escapes.