A requirejs plugin that loads dustjs templates and compiles them. This lets you use dustjs templates in your AMD application like so:
define(
[
'dustjs-linkedin',
'dustc!path/to/my/template/partial.dust'
],
function(dust, tplName){
dust.render(tplName, {}, function(err, out){
// do something with your rendered template...
});
});
The dust template file extension is now detected automattically(thanks, @clmsnskr).You must specify the path to this plugin and provide the path to dustjs. You may optionally specify a module name for dustjs if different from "dustjs-linkedin". You must also include the requirejs-text plugin and Q framework in your project:
require.config({
config: {
'dustc': {
dustModule: 'dustjs' // optional, defaults to "dustjs-linkedin"
}
},
paths: {
'dustc': 'path/to/this/plugin/dustjs-require',
'dustjs': 'path/to/dustjs-linkedin/dist/dust-full-2.2.2',
'q': 'path/to/q',
'text': 'path/to/text'
}
});
Include your dustjs templates in your AMD module like you would with the text! plugin:
define(['dustc!path/to/your/template/partial.dust'])
The plugin will load the template, compile it, store it in dust.cache as:
dust.cache['path/to/your/template/partial']
, and return the template name to your AMD module. Then you can easily render your templates via dust.render:
define(
[
'dustjs-linkedin',
'dust!path/to/my/template/partial.dust'
],
function(dust, tplName){
dust.render(tplName, {}, function(err, out){
// do something with your rendered template...
});
});
This plugin will also work with the r.js optimizer(!).