Socket
Book a DemoInstallSign in
Socket

templation

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

templation

an asynchronous, extensible view system

latest
Source
npmnpm
Version
1.1.0
Version published
Weekly downloads
13
Maintainers
1
Weekly downloads
 
Created
Source

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)

Keywords

templates

FAQs

Package last updated on 11 Sep 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts