node package manager


Render html files from template files for component


Render html file from template file for component

With Component previously installed:

    $ npm install -g component-render
  Usage: component-render [options] <template>
    -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 and fn arugments.
  • template: a template file path.
  • program: commander object.
  • fn: a callback function. specify error, 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);

MIT license.

See the LICENSE.