layout-wrapper v1.1.2
Wrap the contents in the layout template. gulpfriendly.
This module is designed to be used with gulp or bulbo.
NOTE: See also layout1, which is a more simple and flexible version of this module.
Install
npm install layout-wrapper
Usage
This module works with gulp's file stream.
gulpfile.js:
const frontMatter = const wrapper = gulp
Note You still need to install the template engine. (In the above case, you need to install nunjucks
)
src/pages/sample.html:
---title: Hellolayout: default---Hello, {{ name }}!
src/layouts/default.nunjucks:
{{ file.frontMatter.title }} {{ contents }}
The above settings outputs the following html into the path site/sample.html
:
Hello Hello, world!
Use with bulbo
bulbofile.js:
const frontMatter = const wrapper =
API
const wrapper =
wrapper(options)
- @param {object} options - The options
- @param {string} options.layout - The path to the directory of layout files. If nothing is given, then this throws an error. Required.
- @param {string} [options.engine] - The name of the template engine. Default is
lodash
. Please see the document of consolidate.js for what's available here. - @param {object} [options.data] - The additional data which is passed to the layout engine.
- @param {string} [options.frontMatterProp] - The name of the property where the front matter object is stored in vinyl. Default is
frontMatter
. - @param {string} [options.layoutProp] - The name of the property of layout pattern in a front matter. Default is
'layout'
. - @param {string} [options.defaultLayout] - The default layout name when the layout property is not given in the front matter. Default is
default
. - @param {string} [options.extname] - The name of file extension name for template files. Default is
'.' + engine name
e.g..lodash
.ejs
.nunjucks
etc. - @return {Transform<Vinyl, Vinyl>}
This returns the transform stream from vinyl to vinyl. This transforms
Alias methods
You can also use alias methods.
gulp
The above is equivalent of engine: 'nunjucks'
call of wrapper
.
License
MIT