No description
Find a file
2014-11-22 10:30:05 +01:00
lib Layouts instead of templates, closes #2 2014-11-17 20:30:49 +01:00
test 0.5.2 2014-07-09 11:15:03 -07:00
.gitignore first commit 2014-02-04 21:47:35 -08:00
History.md 1.0.0 2014-11-18 12:51:48 +01:00
Makefile first commit 2014-02-04 21:47:35 -08:00
package.json Update package.json 2014-11-18 12:48:12 +01:00
Readme.md Update readme 2014-11-22 10:30:05 +01:00

metalsmith-layouts

A metalsmith plugin for layouts

This plugin renders your source files in a layout. You can use any templating engine supported by consolidate.js. Pass options to it 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)

Installation

$ npm install git://github.com/ismay/metalsmith-layouts.git

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 originated in metalsmith-templates issue #35. Splitting up metalsmith-templates into two plugins was suggested by Ian Storm Taylor. The results are:

Both plugins have been optimised for each use case. For metalsmith-layouts the differences with metalsmith-templates are:

  • The inPlace option has been removed
  • Use layout instead of template in the front-matter to specify a layout
  • The default folder for layouts is layouts instead of templates

For further documentation see the original metalsmith-templates, but keep these differences in mind.

License

MIT