Inline angular templates into a HTML file
JavaScript
Switch branches/tags
Latest commit 335ddff Feb 15, 2014 @wmluke Merge pull request #6 from jfly/patch-1
Update README.md
Permalink
Failed to load latest commit information.
tasks Tightened up jshint rules. Tweak unescapeCharacters method. Jan 25, 2014
test
.gitignore Initial commit Apr 30, 2013
.jshintrc Tightened up jshint rules. Tweak unescapeCharacters method. Jan 25, 2014
.travis.yml Removed node v0.11 from travis build Jan 3, 2014
Gruntfile.js
LICENSE-MIT
Makefile Fix #3: Upgrade cheerio to `~0.12.4` to fix data attribute munging. A… Nov 12, 2013
README.md Update README.md Feb 11, 2014
package.json

README.md

grunt-inline-angular-templates

Inline angular templates into an HTML file

Build Status Bitdeli Badge

Getting Started

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-inline-angular-templates --save-dev

One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-inline-angular-templates');

The "inline_angular_templates" task

Overview

In your project's Gruntfile, add a section named inline_angular_templates to the data object passed into grunt.initConfig().

grunt.initConfig({
    inline_angular_templates: {
        dist: {
            options: {
                base: 'dist/templates', // (Optional) ID of the <script> tag will be relative to this folder. Default is project dir.
                prefix: '/',            // (Optional) Prefix path to the ID. Default is empty string.
                selector: 'body',       // (Optional) CSS selector of the element to use to insert the templates. Default is `body`.
                method: 'prepend',       // (Optional) DOM insert method. Default is `prepend`.
                unescape: {             // (Optional) List of escaped characters to unescape
                    '&lt;': '<',
                    '&gt;': '>',
                    '&apos;': '\'',
                    '&amp;': '&'
                }
            },
            files: {
                'dist/index.html': ['dist/templates/views/*.html']
            }
        }
    }
})

This will prepend the template files into the body of dist/index.html something like...

<html>
<body>
<!-- Begin Templates -->
<script type="text/ng-template" id="/views/template1.html">
<div>
    <h1>Template 1</h1>
</div>
</script>

<script type="text/ng-template" id="/views/template2.html">
<div>
    <h1>Template 2</h1>
</div>
</script>
<!-- End Templates -->

<div ng-view></div>
</body>
</html>

If bundling templates into a JS file is more your thing, check out https://github.com/ericclemmons/grunt-angular-templates.

Options

options.base

Type: String Default value: Grunt working folder

ID of the <script> tag will be relative to this folder

options.prefix

Type: String Default value: Empty string

Append this prefix to the template ID.

options.selector

Type: String Default value: 'body'

The CSS selector of the element to use to insert the templates.

options.method

Type: String Values: append | prepend | replaceWith | after | before Default value: 'prepend'

The DOM method used to insert the templates.

options.unescape

Type: Object Default value: '{}'

List of escaped characters to unescape.

Contributing

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.