Skip to content

Koa view render based on Swig, support tags, filters, and extensions

License

Notifications You must be signed in to change notification settings

koa-modules/swig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

koa-swig

NPM version Build status Test coverage License Dependency status

Koa view render based on Swig, support tags, filters, and extensions.

NPM

Usage

  • v2.x

    app.context.render = render(settings);
  • v1.x

    render(app, settings);

Install

npm install koa-swig

Features

  • First, automatically merge ctx.state from koa 0.14.
  • Second, automatically merge ctx.flash.
  • Finally, merge custom locals.

Example

var koa = require('koa');
var render = require('koa-swig');
var app = koa();

app.context.render = render({
  root: path.join(__dirname, 'views'),
  autoescape: true,
  cache: 'memory', // disable, set to false
  ext: 'html',
  locals: locals,
  filters: filters,
  tags: tags,
  extensions: extensions
});

app.use(function *() {
  yield this.render('index');
});

app.listen(2333);
// koa v2.x
var co = require('co');

app.context.render = co.wrap(render({
  // ...your setting
  writeBody: false
}));

app.use(async ctx => ctx.body = await ctx.render('index'));

Settings

  • swig options

    • autoescape
    • cache
    • locals
    • varControls
    • tagControls
    • cmtControls
  • filters: swig custom filters

  • tags: swig custom tags

  • extensions: add extensions for custom tags

  • ext: default view extname

  • root: view root directory

  • writeBody: default(true) auto write body and response

Methods

  • render.swig.setLocals

  • render.swig.getLocals

Others

  • swig-extras A collection of handy tags, filters, and extensions for Swig.

Licences

MIT

About

Koa view render based on Swig, support tags, filters, and extensions

Resources

License

Stars

Watchers

Forks

Packages

No packages published