Render/precompile Lodash templates
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

readme.md

gulp-template Build Status

Render/precompile Lodash/Underscore templates

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

Install

$ npm install --save-dev gulp-template

Usage

src/greeting.html

<h1>Hello <%= name %></h1>

gulpfile.js

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

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

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

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

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

dist/greeting.html

<h1>Hello Sindre</h1>

API

template(data, [options])

Render a template using the provided data.

template.precompile([options])

Precompile a template for rendering dynamically at a later time.

data

Type: Object

Data object used to populate the text.

options

Type: Object

Lodash _.template options.

Tip

You can also provide your own interpolation string for custom templates.

src/greeting.html

<h1>Hello {{ name }}</h1>

gulpfile.js

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

gulp.task('default', () =>
	gulp.src('src/greeting.html')
		.pipe(data(() => ({name: 'Sindre'})))
		.pipe(template(null, {
			interpolate: /{{([\s\S]+?)}}/g
		}))
		.pipe(gulp.dest('dist'))
);

dist/greeting.html

<h1>Hello Sindre</h1>

Related

License

MIT © Sindre Sorhus