package reason

  1. Overview
  2. Docs

Man page specification.

Man page generation is automatically handled by Cmdliner. The block type is used to define a man page's content.

The print function can be useful if the client wants to define other man pages (e.g. to implement a help command).

Man pages

type block = [
  1. | `S of string
  2. | `P of string
  3. | `Pre of string
  4. | `I of string * string
  5. | `Noblank
]

The type for a block of man page text.

  • `S s introduces a new section s.
  • `P t is a new paragraph with text t.
  • `Pre t is a new preformatted paragraph with text t.
  • `I (l,t) is an indented paragraph with label l and text t.
  • `Noblank suppresses the blank line introduced between two blocks.

Except in `Pre, whitespace and newlines are not significant and are all collapsed to a single space. In labels l and text strings t, the syntax "$(i,italic text)" and "$(b,bold text)" can be used to respectively produce italic and bold text.

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 t = title * block list

The type for a man page. A title and the page text as a list of blocks.

val print : ?subst:(string -> string) -> [ `Pager | `Plain | `Groff ] -> Format.formatter -> t -> unit

print ~subst fmt ppf page prints page on ppf in the format fmt. If fmt is `Pager the function tries to write the formatted result in a pager, if that fails the format `Plain is written on ppf. subst can be used to perform variable substitution, see Buffer.add_substitute (defaults to the identity).

OCaml

Innovation. Community. Security.