Render html file from template file for component
With Component previously installed:
$ npm install -g component-render
Usage: component-render [options] <template>
Options:
-V, --version
-h, --help output usage information
-l, --local <json> local <json> file
-o, --out <path> output html file <path>
-u, --use <name> use the given render <name> plugin
# redner html file from template file
$ component render simple.jade
# render html file from template file with local json file
$ component render -l user.json user.jade
# render html file to output path
$ component render -o ./static/html/simple.html simple.jade
# render html file with plugin
$ component render -u component-render-hogan -l user.json user.mustache
Use Jade template engine. Hogan, EJS, and other template engine, you can support with plugin.
You need to implement below function.
- Function have
template,programandfnarugments. template: a template file path.program:commanderobject.fn: a callback function. specifyerror,htmlto arguments.
var hogan = require('hogan.js'); var path = require('path'); var fs = require('fs'); module.exports = function (template, program, fn) { var local = {}; if (program.local) { var resolve_path = path.resolve(program.local); local = fs.existsSync(resolve_path) ? require(resolve_path) : require(resolve_path + '.json'); } fs.readFile(template, { encoding: 'utf8' }, function (err, data) { if (err) { return fn(err); } var renderer = hogan.compile(data); var html = renderer.render(local); fn(null, html); }); };
See the LICENSE.