1.0.0 • Published 9 years ago

klei-dust v1.0.0

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

Klei Dust

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

Advantages

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>
<html>
    <head>
        <title>A title here</title>
    </head>

    <body>
        {+content/}
    </body>
</html>

file: /views/child.dust

{>base/}

{<content}
<p>Child content...</p>
{/content}

And child views in subfolders:

file: /views/subviews/child2.dust

{>"../base"/}

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

See root and relativeToFile options below for alternatives.

Installation

$ 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

License

MIT

1.0.0

9 years ago

0.8.2

10 years ago

0.8.1

11 years ago

0.8.0

11 years ago

0.7.0

11 years ago

0.6.7

11 years ago

0.6.5

11 years ago

0.6.4

11 years ago

0.6.3

11 years ago

0.6.2

11 years ago

0.6.1

11 years ago

0.6.0

11 years ago

0.5.0

11 years ago

0.4.2

12 years ago

0.4.1

12 years ago

0.3.0

12 years ago

0.2.0

12 years ago

0.1.3

12 years ago

0.1.2

12 years ago

0.1.0

12 years ago