JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 33514
  • Score
    100M100P100Q136338F
  • License MIT

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.

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 NPM version

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

(TOC generated by verb using markdown-toc)

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 of Engine 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 of Engine for chaining

.data

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'

.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'
  • assemble: Assemble is a powerful, extendable and easy to use static site generator for node.js. Used… more | homepage
  • scaffold: Conventions and API for creating declarative configuration objects for project scaffolds - similar in format… 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 © 2016 Jon Schlinkert Released under the MIT license.


This file was generated by verb on January 21, 2016.