Precompile Nunjucks templates
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

readme.md

gulp-nunjucks Build Status

Compile/precompile Nunjucks templates

Issues with the output should be reported on the Nunjucks issue tracker.

Install

$ npm install --save-dev gulp-nunjucks

Usage

Compile

const gulp = require('gulp');
const nunjucks = require('gulp-nunjucks');

gulp.task('default', () =>
	gulp.src('templates/greeting.html')
		.pipe(nunjucks.compile({name: 'Sindre'}))
		.pipe(gulp.dest('dist'))
);

You can alternatively use gulp-data to inject the data:

const gulp = require('gulp');
const nunjucks = require('gulp-nunjucks');
const data = require('gulp-data');

gulp.task('default', () =>
	gulp.src('templates/greeting.html')
		.pipe(data(() => ({name: 'Sindre'})))
		.pipe(nunjucks.compile())
		.pipe(gulp.dest('dist'))
);

Precompile

const gulp = require('gulp');
const nunjucks = require('gulp-nunjucks');

gulp.task('default', () =>
	gulp.src('templates/greeting.html')
		.pipe(nunjucks.precompile())
		.pipe(gulp.dest('dist'))
);

API

nunjucks.compile([data], [options])

Compile a template using the provided data.

data

Type: Object

The data object used to populate the text.

options

Type: Object

Options will be passed directly to the Nunjucks Environment constructor which will be used to compile templates.

options.env

Type: nunjucks.Environment
Default: new nunjucks.Environment()

The custom Nunjucks Environment object which will be used to compile templates. If supplied, the rest of options will be ignored.

options.filters

Type: Object

An object containing custom filters that will be passed to Nunjucks, with the filter's name as key and the filter function as value.

Example:

{
	'shorten': str => str.slice(0, 5),
	'round': num => Math.round(num)
}

nunjucks.precompile([options])

Precompile a template for rendering dynamically at a later time.

Same options as nunjucks.precompile() except for name.

options

Type: Object

name

Type: Function
Default: Relative template path
Example: templates/list.html

You can override the default behavior by supplying a function which gets the current File object and is expected to return the name.

Example:

{
	name: file => `tpl-${file.relative}`
}

License

MIT © Sindre Sorhus