Files
template/bin/render
T
2017-08-30 16:35:03 -07:00

29 lines
883 B
JavaScript
Executable File

#!/usr/bin/env node
const program = require('commander');
const jsdom = require('jsdom');
const { JSDOM } = jsdom;
const transforms = require('../dist/transforms.v2.js');
program
.version('0.0.1')
.option('-i, --input <path>', 'path to input file.')
.parse(process.argv);
const virtualConsole = new jsdom.VirtualConsole();
// omitJSDOMErrors as JSDOM routinely can't parse modern CSS
virtualConsole.sendTo(console, { omitJSDOMErrors: true });
const options = { runScripts: 'outside-only', QuerySelector: true, virtualConsole: virtualConsole };
JSDOM.fromFile(program.input, options).then(dom => {
const window = dom.window;
const document = window.document;
const data = new transforms.FrontMatter;
transforms.render(document, data);
transforms.distillify(document, data);
const transformedHtml = dom.serialize();
process.stdout.write(transformedHtml);
});