compile static templates using hogan.js
This plugin requires Grunt ~0.4.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-hogan-static --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-hogan-static');
In your project's Gruntfile, add a section named hogan_static
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
hogan_static: {
target: {
options: {
data: {
items: ["a", "b", "c"],
title: 'title test',
body: 'body test'
},
usePartials: false
},
files: {
'tmp/': ['test/fixtures/simple.html','test/fixtures/array.html'],
},
}
}
});
Type: Object
or String
Default value: undefined
JSON object data to pass to hogan for templating. If data is passed as a string (including grunt expansion) JSON will be read and stuffed into options.data. note that subsequent json will overwrite any existing keys
Type: Boolean
or String
Default value: false
A Boolean that tells the task to cache discovered templates for use as partials. If the value is a string this is treated as a file path (including grunt expansion) to search for partials. In this use case it is assumed that files on the regular file path are NOT partials.
Type: String
Default value: '{{ }}'
A String value that can be used to override the default hogan.js mustache style delimiters.
a word of caution: this string is still subject to grunt templating so usage of <% %> is strongly discouraged
Type: Boolean
Default value: false
A Boolean that treats the data object as a hash that should be iterated over using the current filename minus its extension test.html => data[test] = {}
. This allows for multiple templates to use different defined data in a single template pass.
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
- 0.3.0 - added support for 'keyed' data object to allow for per file rendering
- 0.2.0 - reverted support for output extensions in favor of using grunt's native support
- 0.1.6 - added support for delimiters and lambda exceptions in partials (thanks SethTippetts)
- 0.1.2 - fixed some issues with output paths. added external JSON support for data. added separate partial dir support.