templation
A node.js view system similar to what you're used to with Express' res.render()
.
Inspired by co-views and
consolidate.js.
- First-class async support.
.render()
always returns a Promise. - Streams are supported.
- Template adapters are integrated, but are retrieved lazily to avoid code bloat.
- Easier plugin system for custom renderers.
Install
$ npm install templation
API
var Templation = var views = views
var views = new Templation(options)
Create a new view system. Options are:
cache
- whether to cache the templates. Defaults totrue
in production.root
- the root folder to look for templates. Defaults toprocess.cwd()
, so you should set this.
views.use(extension, engine)
Use a custom view engine.
extension
is a file extension to map this engine to.
engine
is an object with the following methods:
.compile(filename, options)
- it should return (optionally via promise) a "compiled template". The "compiled template" must be an object or function. This gets cached whencache: true
!.render(compiled, options)
-compiled
is whatever is compiled from.compile()
. It should return (optionally via promise) aString
,Buffer
, orStream
views.render(name, options)
Render the template name
, which resolves against root
.
Returns a promise, which then returns a String
, Buffer
, or Stream
.
views.cache
Enable or disable the caching system. (true
/ false
)
Templation.engines
A list of included engines. Generally, the API usage is:
views
Included adapters are:
Examples
var Templation = var views = views http