gn

gulp-nunjucks

Precompile Nunjucks templates

Showing:

Popularity

Downloads/wk

2K

GitHub Stars

148

Maintenance

Last Commit

10mos ago

Contributors

11

Package

Dependencies

4

Size (min+gzip)

40.7KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

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');

exports.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');

exports.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');

exports.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.

Async filters should be defined as async functions. You cannot use just a promise-returning function.

Example:

{
    'shorten': string => string.slice(0, 5),
    'round': number => Math.round(number),
    'fetch': async url => {
        const response = await fetch(url);
        const result = await response.text();
        return result;
    }
}

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 => `template-${file.relative}`
}

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial