magnet-views
v0.1.1
Published
Template rendering middleware for koa
Downloads
8
Maintainers
Readme
Experimental
A port from koa-views for Magnet. Allow to pass in modules from options.
import nunjucks from 'nunjucks';
opts.modules = {
nunjucks
};
koa-views
Template rendering middleware for koa.
Note: This master branch is for koa's upcoming version
koa@2
. Take a look at thev1.x
branch forkoa@1
.
Installation
$ npm install koa-views@next
Templating engines
koa-views
is using consolidate under the hood.
Example
var views = require('koa-views');
// Must be used before any router is used
app.use(views(__dirname + '/views', {
map: {
html: 'underscore'
}
}));
app.use(async function (ctx, next) {
ctx.state = {
session: this.session,
title: 'app'
};
await ctx.render('user', {
user: 'John'
});
});
For more examples you can take a look at the tests.
API
views(root, opts)
root
: Where your views are located. Must be an absolute path. All rendered views must be relative to this pathopts
(optional)opts.extension
: Default extension for your views
Instead of providing the full file extension you can omit it.
app.use(async function (ctx) {
await ctx.render('user.jade')
})
vs.
app.use(views(__dirname, { extension: 'jade' }))
app.use(async function (ctx) {
await ctx.render('user')
})
opts.map
: Map a file extension to an engine
In this example, each file ending with .html
will get rendered using the nunjucks
templating engine.
app.use(views(__dirname, { map: {html: 'nunjucks' }}))
// render `user.html` with nunjucks
app.use(async function (ctx) {
await ctx.render('user.html')
})
Debug
Set the DEBUG
environment variable to koa-views
when starting your server.
$ DEBUG=koa-views