engine-handlebars

Handlebars engine, consolidate.js style but with enhancements. This works with Assemble, express.js, engine-cache or any application that follows consolidate.js conventions.
Please consider following this project's author, Jon Schlinkert, and consider starring the project to show your :heart: and support.
Install
Install with npm:
$ npm install --save engine-handlebars
Heads up!
There were major breaking changes in v1.0!.
Usage
const handlebars = require('handlebars');
const engine = require('engine-handlebars')(handlebars);
console.log(engine);
The engine
object that is returned has the following properties:
name
- the name of the engine:handlebars
, used for engine detection in other libraries.instance
- your instance of handlebarscompile
- async compile methodcompileSync
- sync compile methodrender
- async render methodrenderSync
- sync render method
API
.compile
Compile file.contents
with handlebars.compile()
. Adds a compiled .fn()
property to the given file
.
Params
file
{Object}: File object withcontents
string or buffer.options
{Object}: Options with partials and helpers.returns
{Promise}
Example
engine.compile({ contents: 'Jon {{ name }}' })
.then(file => {
console.log(typeof file.fn) // 'function'
});
.render
Render file.contents
with the function returned from .compile()
.
Params
file
{Object}: File object withcontents
string or buffer.locals
{Object}: Locals to use as contents to render the string.options
{Object}: Options with partials and helpers.returns
{Promise}
Example
engine.render({ contents: 'Jon {{ name }}' }, { name: 'Schlinkert' })
.then(file => {
console.log(file.contents.toString()) // 'Jon Schlinkert'
});
.compileSync
Compile file.contents
with handlebars.compile()
. Adds a compiled .fn()
property to the given file
.
Params
file
{Object}: File object withcontents
string or buffer.options
{Object}: Options with partials and helpers.returns
{Object}: Returns the file object.
Example
let file = engine.compileSync({ contents: 'Jon {{ name }}' });
console.log(typeof file.fn) // 'function'
.renderSync
Render file.contents
with the function returned from .compile()
.
Params
file
{Object}: File object withcontents
string or buffer.locals
{Object}: Locals to use as contents to render the string.options
{Object}: Options with partials and helpers.returns
{Object}: Returns the file object.
Example
let file = engine.renderSync({ contents: 'Jon {{ name }}' }, { name: 'Schlinkert' });
console.log(file.contents.toString()) // 'Jon Schlinkert'
Release History
v1.0.0
- The main export is now a function that takes an instance of handlebars.
renderFile
and__express
have been removed..compile
and.render
now return a promise..compileSync
and.renderSync
may be used for sync operations.- All methods now expect a
file
object with a.contents
property (string or buffer).
v0.8.0
renderFile
now expects a vinyl file.- The old renderFile method is now exposed on
engine.__express
v0.7.0
- updated to handlebars 0.4.0
About
sh
$ npm install && npm test
sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Related projects
You might also be interested in these projects:
- assemble: Get the rocks out of your socks! Assemble makes you fast at creating web projects… more | homepage
- handlebars-helpers: More than 130 Handlebars helpers in ~20 categories. Helpers can be used with Assemble, Generate… more | homepage
- template-helpers: Generic JavaScript helpers that can be used with any template engine. Handlebars, Lo-Dash, Underscore, or… more | homepage
- templates: System for creating and managing template collections, and rendering templates with any node.js template engine… more | homepage
Contributors
Commits | Contributor |
---|---|
32 | jonschlinkert |
18 | doowb |
Author
Jon Schlinkert
License
Copyright © 2018, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.8.0, on November 11, 2018.