Dust templates
RenderThe simplest use case takes a JSON file as context to render templates. To use an object for context instead of a file, try vinyl-source-stream combined with
function sstream(text) {
var s = new stream.Readable(text);
s._read = function noop() {};
s.push(text);
s.push(null);
}
(instead of gulp.src(...)
).
Example
Precompile a bunch of templates:
var gulp = ;var compile = ;var concat = ;var insert = ;var rename = ; gulp;
In some other module, say rendering_promises.js
, create some rendering
promises (we're after a
partial1({k1:v1, k2:v2}).done(console.log, console.error)
use case):
var dust = ;var when = ; /* * Memoize the partials for Dust to use later. Beware of name * collisions--another module that memoizes additional partials can clobber * these ones. */; exports { return when'memoized/path/to/some/partial' context;}; exports { return when'memoized/path/to/another/partial' context;};
And finally, use a promise from the rendering-promises
module in a task:
var render = require('gulp-dust-render');
var partials = require('./rendering-promises');
gulp.task('render', ['pre'], function () {
gulp.src('./contexts/**/*.json')
.pipe(render(partials.partial1))
.pipe(rename({ extname : "js" }))
.pipe(gulp.dest('compiled'));
});
API
render(renderer)
renderer
Type: Function
Map a context to a promise to render it. The promise should fulfill or fail
with the success or fail outputs of Dust's render callback. See the earlier
example using when--specifically, when.lift
.
License
MIT © Tim Popham