A helper to use dustjs-linkedin along with Express

Klei Dust

klei-dust is a helper (inspired by Consolidate) to use dustjs-linkedin templates as views along with express for node.js.

The main advantage with klei-dust is that it supports relative paths for partials and base templates.

E.g. you can have a base template base.dust at /views/base.dust and a child template at /views/child.dust with the following contents:

file: /views/base.dust

<!DOCTYPE html>
        <title>A title here</title>

file: /views/child.dust

<p>Child content...</p>

And child views in subfolders:

file: /views/subviews/child2.dust

<p>Sub child content...</p>

See root and relativeToFile options below for alternatives.

$ npm install klei-dust

N.B. You must install dustjs-linkedin as well.

To use dust as your default template file extension use:

var express = require('express'),
    kleiDust = require('klei-dust'),
    app = express();
app.configure(function () {
    app.set('views', __dirname + '/views');
    app.engine('dust', kleiDust.dust);
    app.set('view engine', 'dust');
    app.set('view options', {layout: false});

If you want another extension, e.g. html then use this settings instead:

    kleiDust.setOptions({extension: 'html'}); // Add the extension option 
    app.set('views', __dirname + '/views');
    app.engine('html', kleiDust.dust); // change engine to the same filetype 
    app.set('view engine', 'html');    // ditto 
    app.set('view options', {layout: false});

N.B. In the examples above klei-dust uses the express views setting to locate views, see options below.

How to use klei-dust to compile templates whithout express:

var kleiDust = require('klei-dust');
kleiDust.dust('<your-template-folder>/<your-template-name>', <template-data>, function (errout) {
    if (err) return console.log(err);
    // Do something with `out`... 
  • relativeToFile - specifies if paths to partials, base templates, etc. should be specified relative to the current view or to the views root folder, defaults to true
  • root - sets the root directory for all the views/templates, if not set the express views setting is used (only applies if relativeToFile is set to false)
  • extension - sets the default extension for views if omitted in includes/partials, defaults to .dust
  • cache - specifies if the template cache should be enabled or not, defaults to false
  • keepWhiteSpace - if true whitespace in templates won't be compressed, defaults to false
  • useHelpers - if true klei-dust will try and load dustjs-helpers, defaults to false

The options is set with the setOptions() method.

  • getDust - returns the dustjs-linkedin instance to be able to use the streaming api and such.
  • setHelpers - sets the dust.helpers property to the given value.
  • getHelpers - gets the current dust.helpers.
  • setFilters - sets the dust.filters property to the given value.
  • getFilters - gets the current dust.filters.
  • create - create a new instance