Asynchronous Javascript templating for the browser and server
MIT License
Bot releases are hidden (Show)
Full Changelog: https://github.com/linkedin/dustjs/compare/v3.0.0...v3.0.1
Published by sumeetkakkar almost 3 years ago
Full Changelog: https://github.com/linkedin/dustjs/compare/v2.7.2...v3.0.0
Published by sethkinast over 9 years ago
Dust filter functions previously took one argument, the string to filter. They now accept a second argument, which is the current context
.
Dust helpers can now return primitives.
Helpers act like references or sections depending on if they have a body. When they have no body, they act like a reference and look in params.filters
for filters to use. When they have a body, they act like a section. You can return thenables and streams normally.
{@return value="" filters="|s" /}
{@return value=""}{.} World{/return}
Published by sethkinast over 9 years ago
dust.config.cache
In previous versions, setting dust.config.cache
to false
would blow away the entire cache on every render. Now, setting it to false
just prevents new templates from being added and cached templates from being used. Setting it back to true
means that previously-cached templates will be ready to use.
dust.onLoad
We have added a callback(null, compiledTemplate)
signature to dust.onLoad
.
Calling the onLoad
callback with a compiled template function will use this template to satisfy the load request. The template is not automatically registered under any name when passed to the callback, so the onLoad
function should handle registration as it needs.
You can still call the callback with uncompiled template source and Dust will compile and store it, while respecting your dust.config.cache
setting.
dust.makeBase
dust.makeBase
is now aliased to dust.context
.
Dust 2.7.0 broke backwards compatibility with older Dust compilers. This regression has been fixed so templates compiled with older versions of Dust will continue to work with Dust 2.7.1; you can use an older compiler if needed.
Published by sethkinast over 9 years ago
With this release we are dropping official support for:
No explicit changes have been made to break Dust in these environments, but we will no longer run tests and may break them going forward.
You can pass Dust body functions directly to dust.render
and dust.stream
, instead of the template name.
require(['lib/dust-core', 'views/index'], function(dust, index) {
dust.render(index, context, function(err, out) { ... });
});
This means that you can also compile templates without having to name them-- just pass the compiled function directly to dust.render
. You can decide if a function is eligible to be passed as a renderable by calling dust.isTemplateFn()
.
Dust can now compile templates into CommonJS modules. Set dust.config.cjs
to true
, or use the --cjs
flag with dustc.
var dust = require('dustjs-linkedin'),
index = require('views/index.js')(dust);
index.template; // contains the compiled template
index({ name: "Dust" }, function(err, out) { ... }); // use index to render or stream
You can include a ReadableStream directly in your Dust context and Dust will iterate over it like an array.
var resultStream = db.query("SELECT * FROM people").stream();
dust.renderSource("{#people}{firstName} {lastName}{/people}", { people: resultStream })
.pipe(res);
As long as you stream the results instead of rendering, Dust will flush data from the Stream as it is output.
You can disable caching of templates (useful for development) by setting dust.config.cache = false
. If caching is disabled, you must write a dust.onLoad
function to tell Dust how to load partials, since it wouldn't be possible to load them in advance and cache them.
The exposed compiler options such as dust.optimizers
are deprecated. They are now exposed under, e.g. dust.compiler.optimizers
. In Dust 2.8.0 the old options will be removed.
dust.load
, an undocumented but public function, has been made private. Consider using dust.onLoad
to define special behavior to load a template.
Templates compiled with earlier Dust versions should be recompiled before using 2.7.0.
Published by sethkinast over 9 years ago
dustc --watch
now reruns the compilation when a watched template changesContext#clone
, Context#pop
, and Context#resolve
.
Published by sethkinast over 9 years ago
This release fixes two small issues:
{<foo}{/foo}
leaked compiler data into the template.Published by sethkinast over 9 years ago
Major changes in this version:
Dust now supports being included as an AMD module, and allows templates to be compiled as AMD modules for inclusion. More information: https://github.com/linkedin/dustjs/wiki/Loading-Dust-via-AMD-(require.js)
A new dustc
command-line compiler that acts like a shell script, with support for input/output redirection. dustc
can also operate on an entire directory of files at once and concatenate the output to a single file.
Published by sethkinast almost 10 years ago
Published by sethkinast about 10 years ago
Includes pegJS 0.8 for drastically-improved template compile times.
Published by smfoote about 11 years ago
Published by smfoote about 11 years ago