- Commit
- 80b09d9552e57011c849fc305553501611b3079d
- Parent
- 0ed2541d6dc3ff31126915c6ea59d92f0c23acd1
- Author
- John MacFarlane <jgm@berkeley.edu>
- Date
js/bin/markdown: added `--ast` flag and multiple filename args.
My personal build of CMark ✏️
js/bin/markdown: added `--ast` flag and multiple filename args.
1 file changed, 28 insertions, 10 deletions
Status | File Name | N° Changes | Insertions | Deletions |
Modified | js/bin/markdown | 38 | 28 | 10 |
diff --git a/js/bin/markdown b/js/bin/markdown @@ -3,13 +3,31 @@ var fs = require('fs'); var util = require('util'); var commonmark = require('../lib/index.js'); -file = process.argv[2] || '/dev/stdin'; - -fs.readFile(file, 'utf8', function(err, data) { - if (err) { - return console.log(err); - } - var parser = new commonmark.DocParser(); - var renderer = new commonmark.HtmlRenderer(); - process.stdout.write(renderer.render(parser.parse(data))); -}); +var parser = new commonmark.DocParser(); +var renderer; +var inps = []; + +var output_ast = false; +var files = []; + +if (process.argv[2] === '--ast') { + output_ast = true; + files = process.argv.slice(3); + renderer = { render: function(x) { + return util.inspect(x, null, Infinity) + '\n'; + } }; +} else { + files = process.argv.slice(2); + renderer = new commonmark.HtmlRenderer(); +} + +if (files.length === 0) { + files = ['/dev/stdin']; +} + +for (var i = 0; i < files.length; i++) { + file = files[i]; + inps.push(fs.readFileSync(file, 'utf8')); +} + +process.stdout.write(renderer.render(parser.parse(inps.join('\n'))));