cmark

My personal build of CMark ✏️

Commit
80b09d9552e57011c849fc305553501611b3079d
Parent
0ed2541d6dc3ff31126915c6ea59d92f0c23acd1
Author
John MacFarlane <jgm@berkeley.edu>
Date

js/bin/markdown: added `--ast` flag and multiple filename args.

Diffstat

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'))));