express-hbs-segment
v1.0.0-beta2
Published
express-hbs-segment =================== [![Code Climate](https://codeclimate.com/github/MrBoolean/express-hbs-segment/badges/gpa.svg)](https://codeclimate.com/github/MrBoolean/express-hbs-segment) [![Test Coverage](https://codeclimate.com/github/MrBoolean
Downloads
8
Maintainers
Readme
express-hbs-segment
express-hbs-segment
takes care of recurring elements (called segments or fragments) for your application. Sometimes, the express-hbs
partial behaviour is not the best opportunity. Maybe the partial should load its own data or simply accept a bunch of configuration attributes. At this point express-hbs-segment
is a good choice. The built-in example/
directory gives you a short instruction.
Install
npm i --save express-hbs-segment
Usage
var hbs = require('express-hbs');
var segment = require('express-hbs-segment');
segment.configure({
cwd: process.cwd(),
directories: ['app/segment/*', 'lib/segment/*'],
handlebars: hbs
});
{{segment id="latest_news" limit=5 category=1337 title="Latest News"}}
Create a segment
Creating segments is really easy. Just add a folder (e.g. latest-news) and create a .hbs
and .js
file with the same name (in this example: latest-news) in it.
The segment controller must returns a bluebird
Promise instance. The data passed to the resolve-function will be forwarded to the hbs template.
var Promise = require('bluebird');
module.exports = function latestNews(options) {
return Promise.resolve({
options: options
});
};
The above shown example forwards the obtained options object to the view.
FAQ
Is there a reason why this modules depend on express-hbs
?
Unfortunately, the module handlebars
does not support an asynchronous helper workflow. However, express-hbs
comes with a method called registerAsyncHelper
which takes care of the above-mentoined process.