Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

readme.md

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.

You can’t perform that action at this time.