Skip to content

salsify/broccoli-underscore-template-compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors