expand-front-matter
v1.0.0
Published
Middleware for processing config templates in front matter. Can be used with verb, assemble v0.6.0 and greater, or any application based on jonschlinkert/templates.
Downloads
9,922
Maintainers
Readme
expand-front-matter
Middleware for processing config templates in front matter. Can be used with verb, assemble v0.6.0 and greater, or any application based on jonschlinkert/templates.
Install
Install with npm:
$ npm install --save expand-front-matter
Usage
Works with assemble, verb, generate, update, or any Template-based application. Just replace assemble in the examples with your application of choice.
Preparation
This requires front-matter to be parsed in advance. You can easily do this with parser-front-matter like this:
var assemble = require('assemble');
var app = assemble();
// parse front matter on all `hbs` files
app.onLoad(/\.hbs$/, function(view, next) {
matter.parse(view, next);
});
Middleware usage
Use as a middleware:
var expand = require('expand-front-matter');
var assemble = require('assemble');
var app = assemble();
app.onLoad(/\.hbs$/, expand(app));
app.pages('*.hbs');
Plugin usage
app plugin
Use as an "instance" plugin on app
to expand templates in the front-matter of all views in all collections:
var expand = require('expand-front-matter');
var assemble = require('assemble');
var app = assemble();
app.use(expand());
app.pages('*.hbs');
Collection plugin
Use as a collection instance plugin to expand templates in the front-matter of all views in the collection:
var expand = require('expand-front-matter');
var assemble = require('assemble');
var app = assemble();
app.create('pages')
.use(expand(app));
app.pages('*.hbs');
view plugin
Use as a view plugin to expand templates in the front-matter of a specific view:
var expand = require('expand-front-matter');
var assemble = require('assemble');
var app = assemble();
app.create('pages')
app.page('foo', {content: '...'})
.use(expand(app))
.render(function(err, res) {
//=> do stuff to res
});
About
Related projects
- assemble: Get the rocks out of your socks! Assemble makes you fast at creating web projects… more | homepage
- expand: Recursively resolve templates in an object, string or array. | homepage
- template: Render templates using any engine. Supports, layouts, pages, partials and custom template types. Use template… more | homepage
- verb: Documentation generator for GitHub projects. Verb is extremely powerful, easy to use, and is used… more | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verb
Running tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb-generate-readme, v0.2.0, on December 26, 2016.