grunt-template-client

compiles any and all templates into ready to use includes

grunt-template-client

Compile any and all templates into a ready to use script include.

Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-template-client

Then add this line to your project's grunt.js gruntfile:

grunt.loadNpmTasks('grunt-template-client');

given the following config and template

  templateclient: {
    dist: {
        options: {
            variable: 'window.tmpl',
            prefix: 'Hogan.compile(',
            suffix: ')'
        },
        src: ['templates/**/*.hogan'],
        dest: 'dist/tmpl.js' 
    }
  }
<li>
  <h2>{{title}}<h2>
  <p>{{text}}</p>
</li>
<ul id="a-list">
{{#items}}
  {{>item}}
{{/items}}
</ul>

will output the following script file

(function compileTemplates() {
  window.tmpl=window.tmpl||{};
  tmpl.item=Hogan.compile('<li><h2>{{title}}</h2><p>{{text}}</p></li>');
  tmpl.list=Hogan.compile('<ul id="a-list">{{#items}}{{>item}}{{/items}}</ul>');
}());

ready to use/include/concat etc in your app like this.

tmpl.list.render({ items: [] });

I guess there will be need to tweek the regex that cleans the template.

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.2.0 - Forked from https://github.com/ullmark/grunt-hogan-client to make generic.
  • 0.1.1 - Initial release

Copyright (c) 2012 Markus Ullmark
Licensed under the MIT license.