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
,program
andfn
arugments. template
: a template file path.program
:commander
object.fn
: a callback function. specifyerror
,html
to 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
.