Skip to content

Repository files navigation

engine NPM versionNPM downloadsBuild Status

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.

Install

Install with npm:

$ npm install --save engine

Usage

varEngine=require('engine');varengine=newEngine();engine.helper('upper',function(str){returnstr.toUpperCase();});engine.render('<%= upper(name) %>',{name: 'Brian'});//=> 'BRIAN'

API

Create an instance of Engine with the given options.

Params

  • options{Object}

Example

varEngine=require('engine');varengine=newEngine();// orvarengine=require('engine')();

Register a template helper.

Params

  • prop{String}
  • fn{Function}
  • returns{Object}: Instance of Engine for chaining

Example

engine.helper('upper',function(str){returnstr.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

engine.helpers({upper: function(str){returnstr.toUpperCase();},lower: function(str){returnstr.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 object
  • value{any}: If key is a string, this can be any typeof value
  • returns{Object}: Engine instance, for chaining

Example

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

varfn=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'

About

Related projects

  • 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

Contributing

Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

Building docs

(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:

$ npm install -g verb verb-generate-readme && verb

Running tests

Install dev dependencies:

$ npm install -d && npm test

Author

Jon Schlinkert

License

Copyright © 2016, Jon Schlinkert. Released under the MIT license.


This file was generated by verb, v0.9.0, on July 19, 2016.

Releases

Packages

Used by

Contributors

Languages