mdman - Converts markdown to a man page
mdman [options] -t type -o outdir sources...
Converts a markdown file to a man page.
The source file is first processed as a handlebars template. Then, it is processed as markdown into the target format. This supports different output formats, such as troff or plain text.
Every man page should start with a level-1 header with the man name and
section, such as # mdman(1).
The handlebars template has several special tags to assist with generating the man page:
-
Every block of command-line options must be wrapped between
{{#options}}and{{/options}}tags. This tells the processor where the options start and end. -
Each option must be expressed with a
{{#option}}block. The parameters to the block are a sequence of strings indicating the option. For example,{{#option "`-p` _spec_..." "`--package` _spec_..."}}is an option that has two different forms. The text within the string is processed as markdown. It is recommended to use formatting similar to this example.The content of the
{{#option}}block should contain a detailed description of the option.Use the
{{/option}}tag to end the option block. -
References to other man pages should use the
{{man name section}}expression. For example,{{man "mdman" 1}}will generate a reference to themdman(1)man page. For non-troff output, the--manoption will tellmdmanhow to create links to the man page. If there is no matching--manoption, then it links to a file named name.mdin the same directory. -
Variables can be set with
{{*set name="value"}}. These variables can then be referenced with{{name}}expressions. -
Partial templates should be placed in a directory named
includesnext to the source file. Templates can be included with an expression like{{> template-name}}. -
Other helpers include:
{{lower value}}Converts the given value to lowercase.
-ttype- Specifies the output type. The following output types are supported:
man— A troff-style man page. Outputs with a numbered extension (like.1) matching the man page section.md— A markdown file, after all handlebars processing has been finished. Outputs with the.mdextension.txt— A text file, rendered for situations where a man page viewer isn’t available. Outputs with the.txtextension.
-ooutdir- Specifies the directory where to save the output.
--urlbase_url- Specifies a base URL to use for relative URLs within the document. Any relative URL will be joined with this URL.
--manname:section=url- Specifies a URL to use for the given man page. When the
{{man name section}}expression is used, the given URL will be inserted as a link. This may be specified multiple times. If a man page reference does not have a matching--manentry, then a relative link to a file named name.mdwill be used. - sources…
- The source input filename, may be specified multiple times.
-
Convert the given documents to man pages:
mdman -t man -o doc doc/mdman.md