Daub
A templating engine with Mustache-like syntax based on Whiskers.
Installation
Using component:
$ component install daub/daub
Using npm for server-side use or for browserify:
$ npm install daub
Example
Templates are rendered as follows, where "template" is a string and "context" is an object:
var daub = ; var template = 'Hello, {place}!' context = place: 'Region' ; daub; // Hello, Region!
A template might look something like this:
{if tags} {for tag in tags} {tag} {/for} {else} No tags! {/if} {content} {!this paragraph is commented out!}
With the following context:
title: 'My life' author: 'Bars Thorman' tags: 'real' 'vivid' content: 'I grew up into a fine willow.'
It would be rendered as this:
real vivid I grew up into a fine willow.
Partials
Daub's partials are being loaded compile-time, like includes in EJS, so are not available for front-end usage.
You can specify partials using local files, using relative path to target template in statement. If specified path is a directory, it'll resolve corresponding index.html
if exists.
{>./common/header.html}
Or you can use npm or component packages, in which case template.html
file or the one specified in manifest as template
will be loaded.
{>component/tip}
NOTE: By default npm is used to resolve packages. If you want to use component, set { component: true }
in options
argument.
Test
Run unit tests:
$ make test
Best practices
Use Whiskers.js instead, it's ~3x faster (could get even faster because of internal caching).
Forebears
- https://github.com/gsf/whiskers.js
- https://github.com/visionmedia/ejs
- https://github.com/janl/mustache.js
- https://github.com/akdubya/dustjs
- http://code.google.com/p/json-template/
- http://docs.djangoproject.com/en/dev/ref/templates/
License
The MIT License.