Nauseating Packaged Meat
Have opinions about JavaScript? We want to hear them. Take the 2018 JavaScript Ecosystem Survey »


1.0.0 • Public • Published

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.

Setting up Klei Dust with Express

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.

Using klei-dust without express

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 (err, out) {
    if (err) return console.log(err);
    // Do something with `out`...

Available options

  • 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.

Convenience methods

  • 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




npm i klei-dust

Downloadsweekly downloads









last publish


  • avatar
Report a vulnerability