Mustache.js
is a popular JavaScript template engine. Mustache is written to be executed in several kinds of environment
as a global object, a CommonJS module, or as a native AMD module. If the "module
",
"exports
" dependencies are
available, Mustache will register it as a CommonJS module. It can be adapted to eXo Platform thanks to the adapter
format:
<module>
<name>mustache</name>
<script>
<adapter>
define(["require", "exports", "module"], function(require, exports, module) {
<include>/requirejs/js/plugins/mustache.js</include>
});
</adapter>
</script>
<depends>
<module>require</module>
</depends>
<depends>
<module>exports</module>
</depends>
<depends>
<module>module</module>
</depends>
</module>
Use the
adapter
tag here and declare the require
,
exports
and
module
dependencies of the
CommonJS
module. Now any module can have Mustache instance injected just by declaring it in its dependencies list:
<module>
<name>foo</name>
...
<depends>
<module>mustache</module>
</depends>
</module>
(function(mustache){ //code that use Mustache mustache.render(template); })(mustache);