Catberry Dust
It is Catberry fork of Linkedin fork of Dust template engine.
Installation
npm install catberry-dust --save
Getting Started
A quick tutorial for how to use Dust here.
Difference from LinkedIn fork
- All codebase is re-writtern in ES2015/ES6 and optimized for Catberry Framework and browserify
- All components organized via node modules
- Dust is a constructor now. You should create an instance to use it. No global variables anymore.
- It has TemplateProvider and Service Locator registration for Catberry Framework
- There are no ECMAScript 5 shims like indexOf and JSON
- There is no stream and compiler in a browser version
- Server-side stream is based on node.js Readable
- Helpers are built-in
- Removed
tap
helper, usecontext.tap
inside helpers instead - You can add helpers via
dust.helperManager.add('helperName', helper)
- You can add filters via
dust.filterManager.add('filterName', filter)
- You can register and compile templates via
dust.templateManager.compile(source)
anddust.templateManager.registerCompiled(name, compiled)
- By default
h
filter is applied to value, if you specify any filter(s) it will not applyh
filter after your filters - Improved logging, removed many redundant messages and all log messages go to Catberry's event bus if it is registered into Catberry.
- Compiled templates do not use global variable
dust
- Removed redundant pragmas such as
{%esc:s}
from Dust grammar - Method
dust.render
returns aPromise
Usage
To use Dust you should register the template engine into the Catberry locator as following.
const dust = ;const cat = catberry;dust;
In fact, Catberry CLI does it for you.
If you want to use it as a standalone package you need to do following:
Create Dust instance at server and in browser like this:
const Dust = Dust;const dust = ;
Compile, register and render at server:
const compiled = dusttemplateManager;dusttemplateManager; const stream = dust;stream; dust ;
Register and render in browser (template should be compiled already):
dusttemplateManager; dust ;
Also, you need browserify to use it in browser.
Contributing
There are a lot of ways to contribute:
- Give it a star
- Join the Gitter room and leave a feedback or help with answering users' questions
- Submit a bug or a feature request
- Submit a PR
Denis Rechkunov denis.rechkunov@gmail.com