temper
v0.3.2
Published
Temper compiles template for client and server side usage.
Downloads
166
Readme
Temper
Temper is a small module that compiles your templates for server-side usage and client-side usage through one single interface. This makes it easy to create isomorphic JavaScript applications, which is awesome.
The following template engines are supported:
- react-jsx, automatically discovered by using the
.jsx
extension. - jade, automatically discovered by using the
.jade
extension. - ejs, automatically discovered by using the
.ejs
extension. - hogan.js, automatically discovered by using the
.mustache
extension. - mustache, automatically discovered by using the
.mustache
extension. - handlebars, automatically discovered by using the
.mustache
extension. - html, automatically discovered by using the
.html
extension.
As you can see from the list above, we support multiple version engines for the
mustache
extension. You can supply your preference through the API. If no
preference is given it will iterate over the template engines and the one that
is successfully required will be used automatically.
Installation
Temper is distributed through npm:
npm install --save temper
Usage
Temper doesn't depend on any template engines so you need to install these your
self. For these examples I'm going to assume that you have jade
installed as
template engine. Run npm install --save jade
if this is not the case.
Initialising temper is quite simple:
'use strict';
var Temper = require('temper')
, temper = new Temper();
The Temper
constructor allows the following options:
cache
should we cache the compiled template, this defaults totrue
ifNODE_ENV
is set toproduction
. You usually want to have this disabled during development so you can see the changes in your template without having to restart your node process.
The following methods can be used to interact with temper
:
temper.fetch(file, [engine])
The temper.fetch
method allows you to pre-compile your template file. This
is advised as requiring modules and reading files is done synchronous. Simply
call this method with a file location and an option engine argument.
Temper will try it's best to automatically discover template engines based on
file extensions, but sometimes this is impossible. There are tons of mustache
compatible template engines and we cannot figure out which one you want based on
the extension. But for template languages such as jade
it's quite simple.
var data = temper.prefetch('/file/path/to/template.jade');
var data = temper.prefetch('/file/path/to/template.mustache', 'hogan.js');
Data structure
The fetch method returns an JavaScript object that contains the following properties:
The interface
The resulting compiled template have a uniform interface. It's a function that accepts the template data as first argument and returns the generated template.
var template = temper.fetch('/file/path/to/template.jade')
, html = template({ foo: 'bar' });
console.log(html);
License
MIT