koa-hbs-renderer
v1.2.0
Published
A Handlebars template renderer for Koa applications.
Downloads
8
Readme
koa-hbs-renderer
A Handlebars template renderer for Koa applications.
Installation
npm install --save koa-hbs-renderer
Usage
views/template.hbs
<p>This is a template. Isn't that {{adjective}}?</p>
index.js
const Koa = require('koa');
const path = require('path');
const renderer = require('koa-hbs-renderer');
let app = new Koa();
app.use(renderer({
paths: {
views: path.join(__dirname, 'views')
}
}));
app.use(async (ctx, next) => {
await ctx.render('template', {
adjective: 'useful'
});
});
app.listen(3000);
Options
const Handlebars = require('handlebars');
let options = {
cacheExpires: 60,
contentTag: 'content',
defaultLayout: 'default',
environment: 'development',
extension: '.hbs',
hbs: Handlebars.create(),
paths: {
views: path.join(__dirname, 'views'),
layouts: path.join(__dirname, 'layouts'),
partials: path.join(__dirname, 'partials'),
helpers: path.join(__dirname, 'helpers')
},
Promise: Promise
};
app.use(renderer(options));
cacheExpires
The length of time, in seconds, to keep compiled Handlebars templates in the in-memory cache before recompilation. Defaults to 60
.
contentTag
The name of the block used by layouts to render views. Defaults to content
, meaning views will be rendered onto layouts where {{{content}}}
appears.
defaultLayout
The name of the layout to use by default if paths.layouts
is defined. Defaults to default
.
environment
The current Node.js environment, used to determine whether or not to invalidate the contents of cached templates. If set to development
, cached templates will expire after the amount of time specified by cacheExpires
above. Defaults to process.env.NODE_ENV
.
extension
The file extension used by template files. Defaults to .hbs
.
hbs
A Handlebars environment to use. If one is not provided, one will be created via Handlebars.create
when the middleware function is called.
paths
An object literal of specified file paths. Required.
views
The path to a directory of view templates. Required.
partials
The path to a directory of partial templates. If specified, all templates in the partials directory will be compiled and cached together. Optional.
layouts
The path to a directory of layout templates. Optional.
helpers
The path to a directory of helper functions contained in JavaScript files. If specified, all functions in the helpers directory will be loaded and made available to the Handlebars environment for rendering. Optional.
Promise
The constructor function to create internal Promises from. Defaults to the built-in Promise
object; has been tested to work with bluebird
.