task-registry-template-engine

0.2.1 • Public • Published

task-registry-template-engine npm

Build Status Code Climate Test Coverage downloads license

Collects the template engines and abstract template-engine task.

The template engine uses to render a document with specified configuration data.

The first registered template engine is the default template engine.

Usage

var Task = require('task-registry')
//register lodash template engine
require('task-registry-template-engine-lodash')
 
var templateEngine = Task 'TemplateEngine'
 
 
var result = templateEngine.executeSync({
  template: 'hello ${user}!'
  , data: {user: 'Mikey'}
  , engine: 'Lodash' //optional, defaults to the first registered template engine.
}) // the result is 'hello Mikey!'

Develope a new template engine

isFunction= require 'util-ex/lib/is/type/function'
isString  = require 'util-ex/lib/is/type/string'
Task      = require 'task-registry-template-engine'
register  = Task.register
aliases   = Task.aliases
 
class LodashTemplateEngine
  register LodashTemplateEngine
 
  defineProperties LodashTemplateEngine,
    escape: # The HTML "escape" delimiter. 
      type: 'RegExp'
    evaluate: # The "evaluate" delimiter. 
      type: 'RegExp'
    imports: # An object to import into the template as free variables. 
      type: 'Object'
    interpolate: # The "interpolate" delimiter. 
      type: 'RegExp'
    sourceURL: # The sourceURL of the template’s compiled source. 
      type: 'String'
    variable: # The data object variable name. 
      type: 'String'
 
  constructor: ->return super
 
  _executeSync: (aOptions)->
    vTemplate = aOptions.template
    vTemplate = _.template vTemplateaOptions if isString vTemplate
    result = vTemplate aOptions.data if isFunction vTemplate
    result

API

templateEngine.executeSync(aOptions)/templateEngine.execute(aOptions, done)

  • arguments
    • aOptions (Object):
      • template (String): the template string
      • data (Object): the data properties to replace.
      • engine (String|Object): the template engine name if it's string.
        • name (String): the template engine name
        • ...: the template engine's options
    • done Function(error, result): the result callback function for async execute.
  • returns (String): the rendered result string.

TODO

License

MIT

Package Sidebar

Install

npm i task-registry-template-engine

Weekly Downloads

2

Version

0.2.1

License

MIT

Last publish

Collaborators

  • riceball