metalsmith-layouts
A metalsmith plugin for layouts
This plugin passes your source files to a template as contents
and renders them with the templating engine of your choice. You can use any templating engine supported by consolidate.js. Pass options to metalsmith-layouts
with the Javascript API or CLI. The options are:
engine
: templating engine (required)default
: default template (optional)directory
: directory for the layouts, layouts
by default (optional)pattern
: only files that match this pattern will be processed (optional)
Any unrecognised options will be passed on to consolidate.js. You can use this, for example, to disable caching by passing cache: false
to consolidate. See the consolidate.js documentation for all available options.
Installation
$ npm install metalsmith-layouts
Example
Configuration in metalsmith.json
:
{
"plugins": {
"metalsmith-layouts": {
"engine": "handlebars"
}
}
}
Source file src/index.html
:
---
layout: layout.html
title: The title
---
<p>The contents</p>
Layout layouts/layout.html
:
<!doctype html>
<html>
<head>
<title>{{title}}</title>
</head>
<body>
{{{contents}}}
</body>
</html>
Results in dist/index.html
:
<!doctype html>
<html>
<head>
<title>The title</title>
</head>
<body>
<p>The contents</p>
</body>
</html>
Origins
This plugin is a fork of metalsmith-templates. Splitting up metalsmith-templates
into two plugins was suggested by Ian Storm Taylor. The results are:
License
MIT