kramdown-man
Description
Allows you to write man pages for commands in pure Markdown and convert them to roff using Kramdown.
Features
- Converts markdown to roff:
- Supports codespans, emphasis, and strong fonts.
- Supports normal and tagged paragraphs.
- Supports codeblocks and blockquotes.
- Supports bullet, numbered, and definition lists.
- Supports multi-paragraph list items and blockquotes.
- Supports converting [foo-bar](foo-bar.1.md)and[bash](man:bash(1))links intoSEE ALSOman page references.
 
- Provides a handy kramdown-mancommand for converting or previewing markdown man pages.
- Provides a rake task for converting man/*.mdinto man pages.
- Uses the pure-Ruby Kramdown markdown parser.
- Supports Ruby 3.x, JRuby, and TruffleRuby.
Synopsis
usage: kramdown-man [options] MARKDOWN_FILE
    -o, --output FILE                Write the man page output to the file
    -V, --version                    Print the version
    -h, --help                       Print the help output
Examples:
    kramdown-man -o man/myprogram.1 man/myprogram.1.md
    kramdown-man man/myprogram.1.md
Render a man page from markdown:
kramdown-man -o man/myprogram.1 man/myprogram.1.mdPreview the rendered man page:
kramdown-man man/myprogram.1.mdExamples
Render a man page from a markdown file:
require 'kramdown/man'
doc = Kramdown::Document.new(File.read('man/kramdown-man.1.md'))
File.write('man/kramdown-man.1',doc.to_man)
system 'man', 'man/kramdown-man.1'Rake Task
Define a man and file tasks which render all *.md files within the
man/ directory:
require 'kramdown/man/task'
Kramdown::Man::Task.newThen you can generate man pages for all *.md in the man/ directory:
$ rake manSyntax
Code
`code`code
Emphasis
*emphasis*emphasis
Strong
**strong**strong
Paragraph
Normal paragraph.Normal paragraph.
Usage String
`command` [`--foo`] **FILE**command [--foo] FILE
Argument Definitions
*ARG*
: Description here.ARG : Description here.
Option Definitions
`-o`, `--option` *VALUE*
: Description here.-o, --option VALUE
: Description here.
Links
[website](http://example.com/)Man Pages
Link to other man pages in a project:
[kramdown-man](kramdown-man.1.md)Link to other system man page:
[bash](man:bash(1))bash
Note: only works on firefox on Linux.
Email Addresses
Email <bob@example.com>Email bob@example.com
Lists
* one
* two
* three- one
- two
- three
Numbered Lists
1. one
2. two
3. three- one
- two
- three
Definition Lists
ex·am·ple
: a thing characteristic of its kind or illustrating a general rule.
: a person or thing regarded in terms of their fitness to be imitated or the likelihood of their being imitated.ex·am·ple : a thing characteristic of its kind or illustrating a general rule.
: a person or thing regarded in terms of their fitness to be imitated or the likelihood of their being imitated.
Blockquotes
> Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
>
> --Antoine de Saint-ExupéryPerfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.
--Antoine de Saint-Exupéry
Code Blocks
    #include <stdio.h>
    int main()
    {
        printf("hello world\n");
        return 0;
    }#include <stdio.h>
int main()
{
    printf("hello world\n");
    return 0;
}
Code Fences
```
puts "hello world"
```
puts "hello world"
Requirements
- kramdown ~> 2.0
Install
gem install kramdown-manAlternatives
Copyright
Copyright (c) 2013-2023 Hal Brodigan
See {file:LICENSE.txt} for details.