Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

snowyu/task-registry-template-engine.js

Open more actions menu

Repository files navigation

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 vTemplate, aOptions 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

About

Collects the template engines and abstract template-engine.

Resources

License

Stars

Watchers

Forks

Packages

No packages published
Morty Proxy This is a proxified and sanitized view of the page, visit original site.