1.2.0 • Published 8 years ago

commander-to-markdown v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

Coveralls – test coverage
Travis – build status
David – status of dependencies
Code style: airbnb

 

commander-to-markdown

Render the options of a commander app as markdown

 

Installation

$ npm install commander-to-markdown

 

Usage

Say you have a commander app which looks like this:

const program = require('commander');

program
  .arguments('<address>', 'Address for delivery')
  .option('-p, --peppers', 'Add peppers')
  .option('-P, --pineapple', 'Add pineapple')
  .option('-b, --bbq-sauce', 'Add bbq sauce')
  .option('-c, --cheese [type]', 'Pick the type of cheese', 'marble')
  .parse(process.argv);

commanderToMarkdown is pretty much like the require function – only instead of the app itself, you get the program’s options rendered as markdown:

▸ const commanderToMarkdown = require('commander-to-markdown');

▸ commanderToMarkdown(`${__dirname}/app`);
◂ '''
#### `<address>`
Address for delivery.

#### `-p, --peppers`
Add peppers.

#### `-P, --pineapple`
Add pineapple.

#### `-b, --bbq-sauce`
Add bbq sauce.

#### `-c, --cheese [type]`
Pick the type of cheese. Default: `marble`.
'''

 

Demo

Here’s how it looks rendered.

<address>

Address for delivery.

-p, --peppers

Add peppers.

-P, --pineapple

Add pineapple.

-b, --bbq-sauce

Add bbq sauce.

-c, --cheese [type]

Pick the type of cheese. Default: marble.

This looks especially good when rendered as a manpage with marked-man.

 

Preventing the program from executing

To prevent executing the program, we stub out your require('.') and require('..') with an empty function which returns an object. If that’s not enough for you, you can pass us the option programModules:

commanderToMarkdown(`${__dirname/app}`, { programModules: ['.', './logic'] });

 

Caveats

  • At the moment we only accept an absolute path.

 

License

MIT © Studio B12