You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.2 KiB
2.2 KiB
Handlebars Plugin for DocPad
Adds support for the Handlebars templating engine to DocPad
Convention: .inlinejs|js|anything.handlebars|hbs|hb
Install
npm install --save docpad-plugin-handlebars
Configuration
Getting helpers and partials to work
For the plugin to support helpers and partials, you'll have to add something like the following to your docpad configuration file manually:
# ...
plugins:
handlebars:
helpers:
# Expose docpads 'getBlock' function to handlebars
getBlock: (type, additional...) ->
additional.pop() # remove the hash object
@getBlock(type).add(additional).toHTML()
partials:
title: '<h1>{{document.title}}</h1>'
goUp: '<a href="#">Scroll up</a>'
# ...
Usage as precompiler
If the document extension is .inlinejs|js.handlebars|hbs|hb
, the plugin will produce a precompiled template. In this case, you can customise the precompiled template via the following:
# ...
plugins:
handlebars:
precompileOpts:
wrapper: "default"
# ...
Available values for the wrapper option are:
-
"default"
: Produces a handlebars wrapper like:(function() { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['theSlugOfTheFile'] = template(function (Handlebars,depth0,helpers,partials,data) { ... }) })();
-
"amd"
: Produces a AMD handlebars wrapper like:define(['handlebars'], function(Handlebars) { var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; templates['theSlugOfTheFile'] = template(function (Handlebars,depth0,helpers,partials,data) { ... }); });
-
"none"
: Produces a basic wrapper like:function (Handlebars,depth0,helpers,partials,data) { ... }
History
You can discover the history inside the History.md
file
License
Licensed under the incredibly permissive MIT License
Copyright © 2012 Mike Moulton