2.1.3 • Published 4 years ago

metalsmith-define v2.1.3

Weekly downloads
197
License
MIT
Repository
github
Last release
4 years ago

metalsmith-define

travis github npm

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.