mirror of
https://github.com/wassname/template.git
synced 2026-06-27 21:09:08 +08:00
32 lines
1.0 KiB
JavaScript
Executable File
32 lines
1.0 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const path = require('path');
|
|
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;
|
|
data.inputHTMLPath = program.input; // may be needed to resolve relative links!
|
|
data.inputDirectory = path.dirname(program.input);
|
|
transforms.render(document, data);
|
|
transforms.distillify(document, data);
|
|
|
|
const transformedHtml = dom.serialize();
|
|
process.stdout.write(transformedHtml);
|
|
}).catch(console.error);
|