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.
npm install engineTemplate 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.
Install with npm:
``sh`
$ npm install --save engine
`js
var Engine = require('engine');
var engine = new 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
`js
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 chaining
Example
`js
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 chaining
Example
`js
engine.helpers({
upper: function(str) {
return str.toUpperCase();
},
lower: function(str) {
return str.toLowerCase();
}
});
// Or, just require in template-helpers`
engine.helpers(require('template-helpers')._);
Add 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 chaining
Example
`js`
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
`js
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
`js`
engine.render('<%= user %>', {user: 'doowb'});
//=> 'doowb'
* assemble: Get the rocks out of your socks! Assemble makes you fast at creating web projects… more | homepage
* template-helpers: Generic JavaScript helpers that can be used with any template engine. Handlebars, Lo-Dash, Underscore, or… more | homepage
* template: Render templates using any engine. Supports, layouts, pages, partials and custom template types. Use template… more | homepage
* verb: Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… more | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
_(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)_
To generate the readme and API documentation with verb:
`sh`
$ npm install -g verb verb-generate-readme && verb
Install dev dependencies:
`sh``
$ npm install -d && npm test
Jon Schlinkert
* github/jonschlinkert
* twitter/jonschlinkert
Copyright © 2016, Jon Schlinkert.
Released under the MIT license.
*
_This file was generated by verb, v0.9.0, on July 19, 2016._