UNPKG

verb

Version:

A project without documentation is like a project that doesn't exist. Verb solves this by making it dead simple to generate docs, using simple markdown templates, with zero configuration required.

38 lines (32 loc) 1.09 kB
const relative = require('relative'); const resolve = require('resolve-dep'); const _ = require('lodash'); module.exports = function(type, builtins, verb) { function relativePath(filepath) { return relative(verb.cwd(), filepath); } // Look for extensions defined on verb.options verb.options = verb.options || {}; verb.options[type] = verb.options[type] || []; // Look for extensions defined on verb.page.data verb.page = verb.page || {}; verb.page.data = verb.page.data || {}; verb.page.data[type] = verb.page.data[type] || []; // Look for extensions defined on verb.page.options verb.page.data.options = verb.page.data.options || {}; verb.page.data.options[type] = verb.page.data.options[type] || []; var locations = _.flatten([ builtins, verb.options[type], verb.page.data[type], verb.page.data.options[type] ]).map(relativePath); _.forEach(resolve(locations), function(extension) { var fn = {}; try { _.extend(fn, require(extension)(verb)); } catch(err) {} _.merge(verb.context, fn); }); return verb; };