dmd
Version:
dmd (document with markdown) is a collection of handlebars templates for generating markdown documentation from jsdoc-parse input data. It is the default template set used by jsdoc-to-markdown.
64 lines (53 loc) • 1.38 kB
JavaScript
var commandLineArgs = require('command-line-args')
var ansi = require('ansi-escape-sequences')
var dmd = require('../')
var fs = require('fs')
var cli = commandLineArgs(dmd.cliOptions.concat([
{ name: 'help', alias: 'h', type: Boolean },
{ name: 'verbose', alias: 'v', type: Boolean }
]))
var usage = cli.getUsage({
title: 'dmd',
description: 'Generate markdown API documentation',
footer: 'Project home: [underline]{https://github.com/jsdoc2md/dmd}',
synopsis: [
'$ cat jsdoc-parse-output.json | dmd <options>',
'$ dmd --help'
]
})
try {
var config = cli.parse()
} catch (err) {
halt(err)
}
if (config.help) {
console.log(usage)
process.exit(0)
}
if (config.template) {
config.template = fs.readFileSync(config.template, 'utf8')
}
var dmdStream = dmd(config)
dmdStream.on('error', halt)
process.stdin.pipe(dmdStream).pipe(process.stdout)
function halt (err) {
if (err.code === 'EPIPE') process.exit(0) /* no big deal */
if (config) {
if (config.verbose) {
logError('Error: ' + err.message)
logError(err.stack || err)
} else {
logError('Error: ' + err.message)
logError('(run dmd with --verbose for a stack trace)')
}
} else {
logError(err.stack)
}
console.error(usage)
process.exit(1)
}
function logError (msg) {
console.error(ansi.format(msg, 'red'))
}