Awesome
gulp-mustache
mustache plugin for gulp
Usage
First, install gulp-mustache
as a development dependency:
npm install --save-dev gulp-mustache
Then, add it to your gulpfile.js
:
var mustache = require("gulp-mustache");
gulp.src("./templates/*.mustache")
.pipe(mustache({
msg: "Hello Gulp!"
}))
.pipe(gulp.dest("./dist"));
You may also pass in an object representing mustache partials and their contents
as a third argument to the call to mustache()
like so:
With key/value pairs:
gulp.src("./templates/*.mustache")
.pipe(mustache({
msg: "Hello Gulp!",
nested_value: "I am nested.",
another_value: "1 2 3"
},{},{
some_inner_partial: "<p>{{nested_value}}</p>",
another_partial: "<div>{{another_value}}</div>"
})).pipe(gulp.dest("./dist"));
With a json file:
gulp.src("./templates/*.mustache")
.pipe(mustache('your_json_file.json',{},{}))
.pipe(gulp.dest("./dist"));
Partials loaded from disk
Mustache partials not given in the partials
argument will be loaded from disk, relative from the file currently being processed:
{{> ../partials/head }}
This will find a head.mustache
in the partials directory next to the current file's directory. Partials loading is recursive.
API
mustache(view, options, partials)
view
Type: hash
or string
Default: undefined
The view object, containing all template variables as keys. If you pass a string
it will be used as the path to a JSON file containing view variables.
As of v1.0.1
, file.data
is supported as a way of passing data into mustache. See this.
options
Type: hash
Default: { }
The options object to configure the plugin.
options.extension
Type: string
Default: the extension of the current file
options.tags
Type Array
Default undefined
Pass custom mustache delimiters. This must be an Array of strings where the first item is the opening tag and the second the closing tag.
Example:
['{{custom', 'custom}}']
partials
Type: hash
Default: { }
An optional object of mustache partial strings. See mustache.js for details on partials in mustache.