Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including templation with all npm packages installed. Try it out:

var templation = require("templation")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

templation v1.1.0

an asynchronous, extensible view system

templation

NPM version Build status Test coverage Dependency Status License Downloads

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 = require('templation')
var views = new Templation()

views.use('html', Templation.engines.html)

var views = new Templation(options)

Create a new view system. Options are:

  • cache - whether to cache the templates. Defaults to true in production.
  • root - the root folder to look for templates. Defaults to process.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 when cache: true!
  • .render(compiled, options) - compiled is whatever is compiled from .compile(). It should return (optionally via promise) a String, Buffer, or Stream

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.use('html', Templation.engines.html)

Included adapters are:

Examples

var Templation = require('templation')
var views = new Templation()
views.use('html', Templation.engines.html)

http.createServer(function (req, res) {
  views.render('home').then(function (html) {
    // assuming html is a string
    res.setHeader('Content-Length', Buffer.byteLength(html))
    res.setHeader('Content-Type', 'text/html')
    res.end(html)
  }, function (err) {
    res.statusCode = err.status || 500
    res.end('Internal Server Error')
  })
})

License (MIT)

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free