https://github.com/salsify/broccoli-underscore-template-compiler
https://github.com/salsify/broccoli-underscore-template-compiler
npm
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/salsify/broccoli-underscore-template-compiler
- Owner: salsify
- License: mit
- Created: 2014-10-15T15:34:31.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2022-03-08T16:32:35.000Z (over 4 years ago)
- Last Synced: 2025-02-21T11:03:00.363Z (over 1 year ago)
- Topics: npm
- Language: JavaScript
- Size: 12.7 KB
- Stars: 0
- Watchers: 37
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Broccoli Underscore Template Compiler
## Installation
```bash
npm install -D broccoli-underscore-template-compiler
```
## Example
```javascript
var compileTemplates = require('broccoli-underscore-template-compiler');
var templatesTree = compileTemplates('templates', {
description: 'TemplateCompiler (appTemplates)'
});
```
## Input Format
Given the following input:
```html
<%- message %>
```
This plugin will produce an ES6 module equivalent to:
```javascript
export var firstTemplate = _.extend(_.template('\n <%- message %>\n'), {
metadata: {
notes: 'This is my first template'
}
});
export default {
firstTemplate: firstTemplate
};
```
Each `` 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](http://underscorejs.org/#template) suggests:
```js
var helloTemplate = _.template("hello: <%= name %>");
helloTemplate({ name: 'moe' });
//=> "hello: moe"
```
The exported template function is exposed from the compiled module, e.g.
```html
hello: <%= name %>
```
```js
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.