Repository URL to install this package:
|
Version:
0.1.11 ▾
|
| lib |
| package.json |
| README.md |
| LICENSE |
| index.js |
Template engine based on Lo-Dash template, but adds features like the ability to register helpers and more easily set data to be used as context in templates.
This code is based on Lo-Dash's _.template method, with a few additions, like the ability to register helpers and more easily control context.
Install with npm:
$ npm i engine --save
(TOC generated by verb using markdown-toc)
var engine = require('engine'); engine.helper('upper', function(str) { return str.toUpperCase(); }); engine.render('<%= upper(name) %>', {name: 'Brian'}); //=> 'BRIAN'
Create an instance of Engine with the given options.
Params
options {Object}Example
var Engine = require('engine'); var engine = new Engine(); // or var engine = require('engine')();
Register a template helper.
Params
prop {String}fn {Function}returns {Object}: Instance of Engine for chainingExample
engine.helper('upper', function(str) { return str.toUpperCase(); }); engine.render('<%= upper(user) %>', {user: 'doowb'}); //=> 'DOOWB'
Register an object of template helpers.
Params
helpers {Object|Array}: Object or array of helper objects.returns {Object}: Instance of Engine for chainingAdd data to be passed to templates as context.
Params
key {String|Object}: Property key, or an objectvalue {any}: If key is a string, this can be any typeof valuereturns {Object}: Engine instance, for chainingExample
engine.data({first: 'Brian'}); engine.render('<%= last %>, <%= first %>', {last: 'Woodward'}); //=> 'Woodward, Brian'
Creates a compiled template function that can interpolate data properties in "interpolate" delimiters, HTML-escape interpolated data properties in "escape" delimiters, and execute JavaScript in "evaluate" delimiters. Data properties may be accessed as free variables in the template. If a setting object is provided it takes precedence over engine.settings values.
Params
str {string}: The template string.opts {Object}: The options object.escape {RegExp}: The HTML "escape" delimiter.evaluate {RegExp}: The "evaluate" delimiter.imports {Object}: An object to import into the template as free variables.interpolate {RegExp}: The "interpolate" delimiter.sourceURL {string}: The sourceURL of the template's compiled source.variable {string}: The data object variable name.returns {Function}: Returns the compiled template function.Example
var fn = engine.compile('Hello, <%= user %>!'); //=> [function] fn({user: 'doowb'}); //=> 'Hello, doowb!' fn({user: 'halle'}); //=> 'Hello, halle!'
Renders templates with the given data and returns a string.
Params
str {String}data {Object}returns {String}Example
engine.render('<%= user %>', {user: 'doowb'}); //=> 'doowb'
Install dev dependencies:
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Jon Schlinkert
Copyright © 2016 Jon Schlinkert Released under the MIT license.
This file was generated by verb on January 21, 2016.