broccoli-underscore-template-compiler
v0.2.0
Published
Broccoli plugin to compile Underscore templates to ES6 modules.
Downloads
147
Readme
Broccoli Underscore Template Compiler
Installation
npm install -D broccoli-underscore-template-compiler
Example
var compileTemplates = require('broccoli-underscore-template-compiler');
var templatesTree = compileTemplates('templates', {
description: 'TemplateCompiler (appTemplates)'
});
Input Format
Given the following input:
<template id="firstTemplate" data-notes="This is my first template">
<%- message %>
</template>
This plugin will produce an ES6 module equivalent to:
export var firstTemplate = _.extend(_.template('\n <%- message %>\n'), {
metadata: {
notes: 'This is my first template'
}
});
export default {
firstTemplate: firstTemplate
};
Each <template>
in the source file will be available as a field in the module's
default export, as well as an exported variable of the same name, with any data
attributes on the template available under a metadata
hash hanging off of the
resulting function.
Usage
The templates produced by this filter are just the output of Underscore's _.template
function, so you can use them as their documentation suggests:
var helloTemplate = _.template("hello: <%= name %>");
helloTemplate({ name: 'moe' });
//=> "hello: moe"
The exported template function is exposed from the compiled module, e.g.
<!-- templates/my-templates.html -->
<template id="helloTemplate">hello: <%= name %></template>
import { helloTemplate } from 'templates/my-templates';
helloTemplate({ name: 'moe' });
//=> "hello: moe"
Configuration
compileTemplates(inputTree, options)
options.extensions
{Array} (Optional, default ['html']
)
The file extensions which should be read and compiled as templates.
License
This project is distributed under the MIT license.