diff options
Diffstat (limited to 'js')
| -rwxr-xr-x | js/bin/commonmark | 13 | ||||
| -rw-r--r-- | js/lib/blocks.js | 9 | ||||
| -rw-r--r-- | js/lib/html.js | 3 | 
3 files changed, 14 insertions, 11 deletions
diff --git a/js/bin/commonmark b/js/bin/commonmark index 6c9955c..8f1210b 100755 --- a/js/bin/commonmark +++ b/js/bin/commonmark @@ -7,9 +7,8 @@ var commonmark = require('../lib/index.js');  var inps = [];  var file;  var files = []; -var options = { sourcepos: false }; +var options = { sourcepos: false, time: false };  var format = 'html'; -var time = false;  var i;  for (i = 2; i < process.argv.length; i++) { @@ -17,7 +16,7 @@ for (i = 2; i < process.argv.length; i++) {      if (arg === '--ast') {          format = 'ast';      } else if (arg === '--time') { -        time = true; +        options.time = true;      } else if (arg === '--sourcepos') {          options.sourcepos = true;      } else if (/^--/.test(arg)) { @@ -28,7 +27,7 @@ for (i = 2; i < process.argv.length; i++) {      }  } -var parser = new commonmark.DocParser(); +var parser = new commonmark.DocParser(options);  var renderer;  if (format === 'html') { @@ -48,12 +47,8 @@ for (i = 0; i < files.length; i++) {  }  var inp = inps.join('\n'); -if (time) { console.time("parsing"); }  var doc = parser.parse(inp); -if (time) { console.timeEnd("parsing"); } -if (time) { console.time("rendering"); }  var rendered = renderer.render(doc); -if (time) { console.timeEnd("rendering"); } -if (!time) { process.stdout.write(rendered); }
\ No newline at end of file +if (!options.time) { process.stdout.write(rendered); }
\ No newline at end of file diff --git a/js/lib/blocks.js b/js/lib/blocks.js index 05de246..c2d14d7 100644 --- a/js/lib/blocks.js +++ b/js/lib/blocks.js @@ -671,6 +671,7 @@ var Document = function() {  // The main parsing function.  Returns a parsed document AST.  var parse = function(input) {      "use strict"; +    if (this.options.time) { console.time("block parsing"); }      this.doc = Document();      this.tip = this.doc;      this.refmap = {}; @@ -686,13 +687,16 @@ var parse = function(input) {      while (this.tip) {          this.finalize(this.tip, len);      } +    if (this.options.time) { console.timeEnd("block parsing"); } +    if (this.options.time) { console.time("inline parsing"); }      this.processInlines(this.doc); +    if (this.options.time) { console.timeEnd("inline parsing"); }      return this.doc;  };  // The DocParser object. -function DocParser(){ +function DocParser(options){      "use strict";      return {          doc: Document(), @@ -706,7 +710,8 @@ function DocParser(){          incorporateLine: incorporateLine,          finalize: finalize,          processInlines: processInlines, -        parse: parse +        parse: parse, +        options: options || {}      };  } diff --git a/js/lib/html.js b/js/lib/html.js index a985039..847ed98 100644 --- a/js/lib/html.js +++ b/js/lib/html.js @@ -50,6 +50,8 @@ var renderNodes = function(block) {      var options = this.options; +    if (options.time) { console.time("rendering"); } +      while ((event = walker.next())) {          entering = event.entering;          node = event.node; @@ -225,6 +227,7 @@ var renderNodes = function(block) {          }      } +    if (options.time) { console.timeEnd("rendering"); }      return buffer;  };  | 
