blob: 629cd501cf3344b5ce87fdcfb59ca59bc52e0ec0 (
plain)
- #!/usr/bin/env node
- "use strict";
- var util = require('util');
- var fs = require('fs');
- var commonmark = require('../lib/index.js');
- var inps = [];
- var file;
- var files = [];
- var options = { sourcepos: false, time: false };
- var format = 'html';
- var i;
- for (i = 2; i < process.argv.length; i++) {
- var arg = process.argv[i];
- if (arg === '--ast') {
- format = 'ast';
- } else if (arg === '--xml') {
- format = 'xml';
- } else if (arg === '--time') {
- options.time = true;
- } else if (arg === '--sourcepos') {
- options.sourcepos = true;
- } else if (/^--/.test(arg)) {
- process.stderr.write('Unknown option ' + arg + '\n');
- process.exit(1);
- } else {
- files.push(arg);
- }
- }
- var parser = new commonmark.Parser(options);
- var renderer;
- if (format === 'html') {
- renderer = new commonmark.HtmlRenderer(options);
- } else if (format === 'xml') {
- renderer = new commonmark.XmlRenderer(options);
- } else if (format === 'ast') {
- renderer = { render: function(node) {
- return util.inspect(node, null, 20, true) + '\n';
- },
- options: {} };
- }
- if (files.length === 0) {
- files = ['/dev/stdin'];
- }
- for (i = 0; i < files.length; i++) {
- file = files[i];
- inps.push(fs.readFileSync(file, 'utf8'));
- }
- var inp = inps.join('\n');
- var doc = parser.parse(inp);
- var rendered = renderer.render(doc);
- if (!options.time) { process.stdout.write(rendered); }
|