koa-nunjucks-2
Lightweight Koa middleware for Nunjucks.
Installation
npm install --save koa-nunjucks-2
For Koa 2, use the next tag
npm install --save koa-nunjucks-2@next
Usage
Example
var koa = require('koa');
var app = koa();
var koaNunjucks = require('koa-nunjucks-2');
var path = require('path');
app.context.render = koaNunjucks({
ext: 'html',
path: path.join(__dirname, 'views'),
nunjucksConfig: {
autoescape: true
}
});
app.use(function*() {
yield this.render('home', {double: 'rainbow'});
});
Config Options
- ext (default: 'html'): Extension that will be automatically appended to the file name in
this.render
calls. Set to a falsy value to disable. - path (default: current directory): Path to the templates. Also supports passing an array of paths.
- writeResponse (default: true): If true, writes the rendered output to
response.body
. - nunjucksConfig: Object of Nunjucks config options.
Global Template Variables
Use ctx.state to make a variable available in all templates.
Extending Nunjucks
The configuration function returns a Nunjucks Environment which allows you to define custom filters, extensions etc.
app.context.render = koaNunjucks({
ext: 'html',
path: path.join(__dirname, 'views')
});
var nunjucksEnv = app.context.render.env;
nunjucksEnv.addFilter('shorten', function(str, count) {
return str.slice(0, count || 5);
});
License
MIT