ß Extensive docs and a full demo are available at http://akdubya.github.com/dustjs
Asynchronous templates for the browser and node.js
I like Mustache and variants but none of them offers quite what I need.
Use Dust if you want these things:
- async/streaming operation
- browser/node compatibility
- extended Mustache/ctemplate syntax
- clean, low-level API
- high performance
- composable templates
Details in the blog post : http://engineering.linkedin.com/frontend/leaving-jsps-dust-moving-linkedin-dustjs-client-side-templates
We will gradually be extending this library with helper functions and bug fixes.
- Fix to peg.js to print the line and column number for syntax errors in dust templates
- Fix to support > node0.4
- Addition of jasmine test suite, BDD with dust.js
- There are cases of rendering logic that are best done in templates. @if helper that relies entirely on the js eval for expression evaluation, The perf results are here: http://jsperf.com/dust-if. We intend to replace the slow js eval with a expression parser soon
- Section index for lists of maps stored in the dust context for ease of writing simple logic in templates
- Section size for lists of maps stored in the dust context for ease of writing simple logic in templates
For Linkedin Dustjs
$ npm install dustjs-linkedin
To render compiled templates in the browser:
<script src="dust-core-0.6.0.min.js"></script>
To compile a template on the command line, use the dustc command. Its syntax is:
dustc [{-n|--name}=<template_name>] {inputfilename|-} [<outputfilename>]
For example, to compile a template on the command line and have it registered under the same name as the source file:
$ dustc template.html
You can customize the name under which the template is registered:
$ dustc --name=mytemplate template.html
To run tests:
$ make test
To generate code coverage report:
$ npm install cover -g
$ make coverage
To view HTML test coverage report:
$ open cover_html/index.html