Ronn generates Man pages. See ronn(1), ronn-format(7). Also see it on GitHub: rtomayko/ronn.

gem install ronn
ronn foo.1.md        # creates foo.1.html
ronn -r foo.1.md     # creates foo.1 (--roff)
ronn -r -h foo.1.md  # builds --roff and --html
ronn -m foo.1.md     # view as manpage

Basic template

name(1) -- short, single-sentence description
=============================================

## SYNOPSIS

`name` [<optional>...] <flags>

## DESCRIPTION

A normal paragraph. This can span multiple lines and is terminated with two
or more line endings just like Markdown.

## OPTIONS

 * `-h`, `--help` :
   Displays the help screen.

 * `--version` : 
   Displays version information.

## EXAMPLES

Indent examples with 4 spaces.

    $ ls
    $ ls -la

## COPYRIGHT

**PROJECTNAME** is copyright (c) 2015, Rico Sta. Cruz. Released under the MIT
license.

## SEE ALSO

ronn-format(7), ronn(1)

Formatting tags

Bold: `code` **strong**
Underline: <variable> _emphasis_ *emphasis*

Linking

Manual references: sh(1) markdown(7)
Sections: [STANDARDS][], [SEE ALSO][], [DIFFERENT TEXT][#SEE-ALSO]
URL: [URL link](http://github.com/rstacruz)
URL: <http://github.com>

Frequently-used sections

## SYNOPSIS
## DESCRIPTION
## OPTIONS
## SYNTAX
## ENVIRONMENT
## RETURN VALUES
## STANDARDS
## SECURITY CONSIDERATIONS
## BUGS
## HISTORY
## AUTHOR
## COPYRIGHT
## SEE ALSO

Other CLI options

--pipe                       # write to stdout
--server, -S                 # serve in http://localhost:1207

--html, -5                   # default
--fragment, -f               # html without header/title/footer

--style=toc,80c              # toc (table of contents)
                             # 80c (use 80c instead of 100c)
                             # print (include print stylesheet)
                             # dark

--manual="MY MANUAL"         # shown on top-center
--organization="RONN 0.7.0"  # shown on bottom-left
--date="YYYY-MM-DD"          # shown on bottom-center

Sections

See Man page sections (december.com).

Section Description
1 General commands
2 System calls
3 C standard lib
4 Special files (/dev) and drivers
5 File formats
6 Games
7 Misc
8 System administration commands and procedures

Using ronn with npm

Place manual files in man/xxx.1.md, then in package.json:

"scripts": {
  "prepublish": "npm run build-man",
  "build-man": "if which ronn; then ronn man/*.md --html --roff --style=toc,80c --organization=\"@rstacruz\"; fi"
},
"directories": {
  "man": "man"
}

JavaScript version

See marked-man.

npm install -g marked-man
marked-man foo.1.md > foo.1

Differences

  • No definition lists
  • Can’t use <br>

Mantastic

mantastic is a hosted service.

curl -F page=@mymanpage.md http://mantastic.herokuapp.com