Plugin to debug Metalsmith
JavaScript HTML Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


A Metalsmith plugin to debug Metalsmith and plugins. It is a thin wrapper around debug making use of its namespaces and logging functionality.


$ npm install metalsmith-debug --save

CLI Usage

Install via npm and then add the metalsmith-debug key to your metalsmith.json:

  "plugins": {
    "metalsmith-debug": {}

Available namespaces

Available namespaces defined by metalsmith-debug are:

  • metalsmith:source
  • metalsmith:destination
  • metalsmith:metadata
  • metalsmith:files
  • metalsmith:log

To see debug messages, you must set a DEBUG environment variable to the desired namespaces.

For all debug messages you can define:

$ DEBUG=metalsmith:* metalsmith

Or you can use namespaces to see only necessary messages:

$ DEBUG=metalsmith:files metalsmith

If you want to debug a specific plugin you must name it:

$ DEBUG=metalsmith-collections metalsmith

You can specify multiple namespaces to debug by separating them with commas:

$ DEBUG=metalsmith:source,metalsmith-collections metalsmith

Javascript Usage

Pass metalsmith-debug plugin to Metalsmith with the use method:

var debug = require('metalsmith-debug');



In case you want to use .use(debug()) several times in your Metalsmith chain you have some options to switch off some of the metalsmith:* namespaces. Additionally, you can add some arbitrary log text. Furthermore you can apply file matching if you only want to monitor certain files. The match option is based on the globbing patterns implemented by multimatch.

var debug = require('metalsmith-debug');

  log: "first debug",      // any comment you like
  metadata: false,         // default: true
  source: false,           // default: true
  destination: false,      // default: true
  files: true,             // default: true
  match: "**/*.md"         // default: all files