metalsmith-define
This plugin enables you to define custom values in the metadata. Why you would use it for is up to you, but here are some ideas:
- expose a node module (e.g.: Lodash) in the metadata to use it in a template
- expose
process.env
to your templates (NODE_ENV
, etc) - expose JSON files (e.g.: expose the
package.json
file similarly to how it's done in a classic Gruntfile) - expose your own JavaScript modules (e.g., define custom helper functions)
Install
npm install metalsmith-define
Usage
CLI
metalsmith.json
Node.js
const metalsmith = const metalsmithDefine =
API
metalsmithDefine(options)
options
Type: Enumerable
(Array, Class, Map, Object, string, etc)
Default: {}
This parameter will be iterated on all its key/value pairs either via:
{type}.prototype.entries
if the method exists (e.g., Map),- or
Object.entries
for all the other types: Array, Object, etc
The pairs will be merged into the metadata object in the order in which they are being iterated on.