magnet-views
v0.1.1
Published
Template rendering middleware for koa
Downloads
3
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.xbranch forkoa@1.
Installation
$ npm install koa-views@nextTemplating 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