Metalsmith JSTransformer Partials Plugin
JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.editorconfig
.gitignore
.travis.yml
HISTORY.md
LICENSE.md
README.md
index.js
package.json

README.md

Metalsmith JSTransformer Partials NPM version

Build Status Dependency Status

Metalsmith plugin to add partial support through any JSTransformer.

Installation

npm install --save metalsmith-jstransformer-partials

CLI

If you are using the command-line version of Metalsmith, you can install via npm, and then add the metalsmith-jstransformer-partials key above metalsmith-jstransformer in your metalsmith.json file:

{
  "plugins": {
    "metalsmith-jstransformer-partials": {},
    "metalsmith-jstransformer": {}
  }
}

JavaScript API

If you are using the JavaScript API for Metalsmith, then you can require the module and add it to your .use() directives above metalsmith-jstransformer:

var partials = require('metalsmith-jstransformer-partials');
var jstransformer = require('metalsmith-jstraxnsformer');

metalsmith.use(partials());
metalsmith.use(jstransformer());

Usage

Partials are automatically defined in the partials/ directory, but you are able to define them manually by adding partials: true to your file metadata. The following example using Swig, so ensure you also install jstransformer-swig. To call a partial, invoke partial(<partialname>, locals) or `partials:

src/partials/name.swig

---
partial: true
name: Default Name
---
<div class="name">
  <h2>Name: {{ name }}</h2>
</div>

src/index.html.swig

<div class="name-wrapper">
  {{ partial('name', { name: 'TJ Holowaychuk' })|safe }}
</div>

Result

<div class="name-wrapper">
<div class="name">
  <h2>Name: TJ Holowaychuk</h2>
</div>
</div>

Options

.pattern

The pattern in which to automatically detect partials, without having to set partial: true. Defaults to partials/**.

.partials

An array of already existing partials to add to the array.

License

MIT