Package Exports
- engine
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (engine) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
engine 
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
Install with npm
$ npm i engine --save
Table of contents
(Table of contents generated by verb)
Usage
var engine = require('engine');
engine.helper('upper', function(str) {
return str.toUpperCase();
});
engine.render('<%= upper(name) %>', {name: 'Brian'});
//=> 'BRIAN'
API
Engine
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')();
.helper
Register a template helper.
Params
prop
{String}fn
{Function}returns
{Object}: Instance ofEngine
for chaining
Example
engine.helper('upper', function(str) {
return str.toUpperCase();
});
engine.render('<%= upper(user) %>', {user: 'doowb'});
//=> 'DOOWB'
.helpers
Register an object of template helpers.
Params
helpers
{Object|Array}: Object or array of helper objects.returns
{Object}: Instance ofEngine
for chaining
Example
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')._);
.data
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
engine.data({first: 'Brian'});
engine.render('<%= last %>, <%= first %>', {last: 'Woodward'});
//=> 'Woodward, Brian'
.compile
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!'
.render
Renders templates with the given data and returns a string.
Params
str
{String}data
{Object}returns
{String}
Example
engine.render('<%= user %>', {user: 'doowb'});
//=> 'doowb'
Related projects
- assemble: Static site generator for Grunt.js, Yeoman and Node.js. Used by Zurb Foundation, Zurb Ink, H5BP/Effeckt,… more | homepage
- scaffold: Conventions and API for creating scaffolds that can by used by any build system or… more | homepage
- snippet: CLI and API for easily creating, reusing, sharing and generating snippets of code from the… 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
Running tests
Install dev dependencies:
$ npm i -d && npm test
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Author
Jon Schlinkert
License
Copyright © 2015 Jon Schlinkert Released under the MIT license.
This file was generated by verb-cli on September 08, 2015.