Node's Perpetuum Mobile

    gulp-nunjucks

    5.1.0 • Public • Published

    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}`
    }

    Install

    npm i gulp-nunjucks

    DownloadsWeekly Downloads

    1,703

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    7.74 kB

    Total Files

    4

    Last publish

    Collaborators

    • sindresorhus