2.1.3 • Published 4 years ago
metalsmith-define v2.1.3
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
{
"plugins": {
"metalsmith-define": {
"production": true
}
}
}
Node.js
const metalsmith = require('metalsmith')
const metalsmithDefine = require('metalsmith-define')
metalsmith(__dirname).use(
metalsmithDefine({
_: require('underscore'),
development: true,
pkg: require('./package.json'),
helpers: require('./helpers.js'),
})
)
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.