Skip to content

Instantly share code, notes, and snippets.

@shanelau
Created December 28, 2015 01:26
Show Gist options
  • Save shanelau/78ea2c0b8207b9f7ff7a to your computer and use it in GitHub Desktop.
Save shanelau/78ea2c0b8207b9f7ff7a to your computer and use it in GitHub Desktop.
contentFor block helper for hbs
var express = require('express'),
exphbs = require('express3-handlebars'),
app = express(),
hbs;
hbs = exphbs.create({
helpers: {
block: function (name) {
var blocks = this._blocks,
content = blocks && blocks[name];
return content ? content.join('\n') : null;
},
contentFor: function (name, options) {
var blocks = this._blocks || (this._blocks = {}),
block = blocks[name] || (blocks[name] = []);
block.push(options.fn(this));
}
}
});
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');

in index.layout define

{{{block "pageScripts"}}}

in index.hbs define


{{#contentFor "pageScripts"}}
<script>
 // my page specific code here
</script>
{{/contentFor}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment