formatter(n) Documentation tools formatter(n)
NAME
formatter - Interface specification for formatter code
DESCRIPTION
This manpage specifies the interface between the manpage processor mpexpand and the tcl code implementing the conversion into a particular
output format.
The tcl code has to provide
[1] Implementations of all commands specified in format(n), using the defined names
[2] and additionally implementations for
NumPasses
This command is called after the formatter is setup and has to return the number of passes required by this formatter to
process a manpage. This information has to be an integer number greater or equal to one.
PassSetup
This command is called at the beginning of each pass over the input. It can assume that the current number of the pass is
already set to the correct value and is responsible for setting up the internal state of the formatter for this pass.
PostProcess text
This command is called after last pass, with the expansion result of that pass, and can do any last-ditch modifications of
the generated result. Its result is the final text written to the output.
Most formats will use identity here.
HandleText text
This command is called for any plain text encountered by the processor in the input and can do any special processing
required for plain text. Its result is the string written into the expansion.
Most formats will use identity here.
The tcl code implementing all of the above can make the following assumptions:
[1] It has full access to its own non-safe interpreter. In other words, the formatter cannot damage the other parts of the processor,
but it can do damage to the filesystem. It is trusted in that way.
[2] The surrounding system provides the formatter code with the following commands:
mp_pass
This command returns the number of the current pass.
mp_file
This command returns the full name of the file currently processed, or stdin, if the input is read from there.
mp_module
This command returns the name of the module we are in.
cappend
cget
cis
cname
cpop
cpush
cset
lb
rb All of the above commands are methods of the expander object handling the input. Their arguments and results are described in
expander(n).
SEE ALSO
expander(n), format(n), mpexpand(n)
KEYWORDS
manpage, interface, TMML, HTML, nroff, conversion, markup
doctools 1.0 formatter(n)