117 lines
3.2 KiB
Markdown
117 lines
3.2 KiB
Markdown
# grunt-contrib-jst [![Build Status](https://secure.travis-ci.org/gruntjs/grunt-contrib-jst.png?branch=master)](http://travis-ci.org/gruntjs/grunt-contrib-jst)
|
||
|
||
> Precompile Underscore templates to JST file.
|
||
|
||
|
||
## Getting Started
|
||
If you haven't used [grunt][] before, be sure to check out the [Getting Started][] guide, as it explains how to create a [gruntfile][Getting Started] as well as install and use grunt plugins. Once you're familiar with that process, install this plugin with this command:
|
||
|
||
```shell
|
||
npm install grunt-contrib-jst --save-dev
|
||
```
|
||
|
||
[grunt]: http://gruntjs.com/
|
||
[Getting Started]: https://github.com/gruntjs/grunt/blob/devel/docs/getting_started.md
|
||
|
||
|
||
## Jst task
|
||
_Run this task with the `grunt jst` command._
|
||
|
||
### Overview
|
||
|
||
In your project's Gruntfile, add a section named `jst` to the data object passed into `grunt.initConfig()`.
|
||
|
||
```js
|
||
grunt.initConfig({
|
||
jst: {
|
||
options: {
|
||
// Task-specific options go here.
|
||
},
|
||
your_target: {
|
||
// Target-specific file lists and/or options go here.
|
||
},
|
||
},
|
||
})
|
||
```
|
||
### Options
|
||
|
||
#### files
|
||
Type: `Object`
|
||
|
||
This defines what files this task will process and should contain key:value pairs.
|
||
|
||
The key (destination) should be an unique filepath (supports [grunt.template](https://github.com/gruntjs/grunt/blob/master/docs/api_template.md)) and the value (source) should be a filepath or an array of filepaths (supports [minimatch](https://github.com/isaacs/minimatch)).
|
||
|
||
Note: Values are precompiled to the namespaced JST array in the order passed.
|
||
|
||
#### options.namespace
|
||
Type: `String`
|
||
Default: 'JST'
|
||
|
||
The namespace in which the precompiled templates will be asssigned. *Use dot notation (e.g. App.Templates) for nested namespaces.*
|
||
|
||
#### options.processName
|
||
Type: ```function```
|
||
Default: null
|
||
|
||
This option accepts a function which takes one argument (the template filepath) and returns a string which will be used as the key for the precompiled template object. The example below stores all templates on the default JST namespace in capital letters.
|
||
|
||
```js
|
||
options: {
|
||
processName: function(filename) {
|
||
return filename.toUpperCase();
|
||
}
|
||
}
|
||
```
|
||
|
||
#### options.templateSettings
|
||
Type: ```Object```
|
||
Default: null
|
||
|
||
The settings passed to underscore when compiling templates.
|
||
|
||
```js
|
||
jst: {
|
||
compile: {
|
||
options: {
|
||
templateSettings: {
|
||
interpolate : /\{\{(.+?)\}\}/g
|
||
}
|
||
},
|
||
files: {
|
||
"path/to/compiled/templates.js": ["path/to/source/**/*.html"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
### Examples
|
||
|
||
```js
|
||
jst: {
|
||
compile: {
|
||
options: {
|
||
templateSettings: {
|
||
interpolate : /\{\{(.+?)\}\}/g
|
||
}
|
||
},
|
||
files: {
|
||
"path/to/compiled/templates.js": ["path/to/source/**/*.html"]
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## Release History
|
||
|
||
* 2012-10-11 v0.3.1 Rename grunt-contrib-lib dep to grunt-lib-contrib.
|
||
* 2012-08-22 v0.3.0 Options no longer accepted from global config key.
|
||
* 2012-08-15 v0.2.3 Support for nested namespaces.
|
||
* 2012-08-11 v0.2.2 Added processName functionality & escaping single quotes in filenames.
|
||
* 2012-08-09 v0.2.0 Refactored from grunt-contrib into individual repo.
|
||
|
||
---
|
||
|
||
Task submitted by [Tim Branyen](http://tbranyen.com)
|
||
|
||
*This file was generated on Tue Nov 13 2012 16:12:13.*
|