Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

pillarjs/templation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Caution

This repository is archived and no longer actively maintained.

We are no longer accepting issues, feature requests, or pull requests. For additional support or questions, please visit the Express.js Discussions page.

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')
  })
})

About

An asynchronous, extensible view system

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 3

  •  
  •  
  •