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.
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!'
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 vTemplate, aOptions if isString vTemplate
result = vTemplate aOptions.data if isFunction vTemplate
result
templateEngine.executeSync(aOptions)/templateEngine.execute(aOptions, done)
- arguments
aOptions
(Object):template
(String): the template stringdata
(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.
MIT