ape-tmpl
Version:
Templates for ape framework.
70 lines (63 loc) • 7.84 kB
JavaScript
/**
* Define a bud for README.md
* @memberof module:ape-tmpl/lib
* @function readmeBud
* @param {object} config - Configuration.
* @param {string} config.sections - Section file path.
* @param {object} config.pkg - Package data.
* @param {string} config.repo - GitHub Repository name. (eg. 'ape-repo/ap-tmpl')
* @param {object} config.badges - Badge data.
* @param {boolean} [config.badges.travis=false] - Should show travis badge.
* @param {boolean} [config.badges.codeclimate=false] - Should show codeclimate badge.
* @param {boolean} [config.badges.codeclimateCoverage=false] - Should show codeclimate coverage badge.
* @param {boolean} [config.badges.gemnasium=false] - Should show gemnasium badge.
* @param {boolean} [config.badges.npm=false] - Should show npm badge.
* @param {boolean} [config.badges.bower=false] - Should show bower badge.
* @param {object} config.links - Link urls.
* @param {string} config.overview - Overview file path.
* @param {object} config.vars - Custom variables.
* @returns {object} - Bud object.
*/
;
var aglob = require('aglob');
var _tmpl = require('./_tmpl');
var path = require('path');
var assert = require('assert');
/** @lends readmeBud */
function readmeBud() {
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var pkg = config.pkg,
sections = config.sections,
repo = config.repo;
assert.ok(pkg, 'config.pkg is required.');
assert.ok(sections, 'config.sections is required.');
assert.ok(repo, 'config.repo is required.');
return {
force: true,
mode: '444',
path: 'README.md',
mkdirp: true,
tmpl: _tmpl('hbs/README.md.hbs'),
data: {
pkg: pkg,
repo: repo,
banner: config.banner,
bannerSize: config.bannerSize || 148,
sections: aglob.sync(sections).map(function (filename) {
var name = path.relative(process.cwd(), filename);
var anchor = name.replace(/[\/\¥]/g, '-');
return {
anchor: path.basename(anchor, path.extname(anchor)),
name: name,
filename: filename
};
}),
badges: config.badges,
links: config.links,
overview: config.overview,
vars: config.vars
}
};
}
module.exports = readmeBud;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlYWRtZV9tZF9idWQuanMiXSwibmFtZXMiOlsiYWdsb2IiLCJyZXF1aXJlIiwiX3RtcGwiLCJwYXRoIiwiYXNzZXJ0IiwicmVhZG1lQnVkIiwiY29uZmlnIiwicGtnIiwic2VjdGlvbnMiLCJyZXBvIiwib2siLCJmb3JjZSIsIm1vZGUiLCJta2RpcnAiLCJ0bXBsIiwiZGF0YSIsImJhbm5lciIsImJhbm5lclNpemUiLCJzeW5jIiwibWFwIiwiZmlsZW5hbWUiLCJuYW1lIiwicmVsYXRpdmUiLCJwcm9jZXNzIiwiY3dkIiwiYW5jaG9yIiwicmVwbGFjZSIsImJhc2VuYW1lIiwiZXh0bmFtZSIsImJhZGdlcyIsImxpbmtzIiwib3ZlcnZpZXciLCJ2YXJzIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBOztBQUVBLElBQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLE9BQUQsQ0FBckI7O0FBQ0EsSUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsU0FBRCxDQUFyQjs7QUFDQSxJQUFNRSxJQUFJLEdBQUdGLE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQUNBLElBQU1HLE1BQU0sR0FBR0gsT0FBTyxDQUFDLFFBQUQsQ0FBdEI7QUFFQTs7O0FBQ0EsU0FBU0ksU0FBVCxHQUFpQztBQUFBLE1BQWJDLE1BQWEsdUVBQUosRUFBSTtBQUFBLE1BQ3pCQyxHQUR5QixHQUNERCxNQURDLENBQ3pCQyxHQUR5QjtBQUFBLE1BQ3BCQyxRQURvQixHQUNERixNQURDLENBQ3BCRSxRQURvQjtBQUFBLE1BQ1ZDLElBRFUsR0FDREgsTUFEQyxDQUNWRyxJQURVO0FBRS9CTCxFQUFBQSxNQUFNLENBQUNNLEVBQVAsQ0FBVUgsR0FBVixFQUFlLHlCQUFmO0FBQ0FILEVBQUFBLE1BQU0sQ0FBQ00sRUFBUCxDQUFVRixRQUFWLEVBQW9CLDhCQUFwQjtBQUNBSixFQUFBQSxNQUFNLENBQUNNLEVBQVAsQ0FBVUQsSUFBVixFQUFnQiwwQkFBaEI7QUFDQSxTQUFPO0FBQ0xFLElBQUFBLEtBQUssRUFBRSxJQURGO0FBRUxDLElBQUFBLElBQUksRUFBRSxLQUZEO0FBR0xULElBQUFBLElBQUksRUFBRSxXQUhEO0FBSUxVLElBQUFBLE1BQU0sRUFBRSxJQUpIO0FBS0xDLElBQUFBLElBQUksRUFBRVosS0FBSyxDQUFDLG1CQUFELENBTE47QUFNTGEsSUFBQUEsSUFBSSxFQUFFO0FBQ0pSLE1BQUFBLEdBQUcsRUFBSEEsR0FESTtBQUVKRSxNQUFBQSxJQUFJLEVBQUpBLElBRkk7QUFHSk8sTUFBQUEsTUFBTSxFQUFFVixNQUFNLENBQUNVLE1BSFg7QUFJSkMsTUFBQUEsVUFBVSxFQUFFWCxNQUFNLENBQUNXLFVBQVAsSUFBcUIsR0FKN0I7QUFLSlQsTUFBQUEsUUFBUSxFQUFFUixLQUFLLENBQUNrQixJQUFOLENBQVdWLFFBQVgsRUFBcUJXLEdBQXJCLENBQXlCLFVBQUNDLFFBQUQsRUFBYztBQUMvQyxZQUFJQyxJQUFJLEdBQUdsQixJQUFJLENBQUNtQixRQUFMLENBQWNDLE9BQU8sQ0FBQ0MsR0FBUixFQUFkLEVBQTZCSixRQUE3QixDQUFYO0FBQ0EsWUFBSUssTUFBTSxHQUFHSixJQUFJLENBQUNLLE9BQUwsQ0FBYSxTQUFiLEVBQXdCLEdBQXhCLENBQWI7QUFDQSxlQUFPO0FBQ0xELFVBQUFBLE1BQU0sRUFBRXRCLElBQUksQ0FBQ3dCLFFBQUwsQ0FBY0YsTUFBZCxFQUFzQnRCLElBQUksQ0FBQ3lCLE9BQUwsQ0FBYUgsTUFBYixDQUF0QixDQURIO0FBRUxKLFVBQUFBLElBQUksRUFBSkEsSUFGSztBQUdMRCxVQUFBQSxRQUFRLEVBQVJBO0FBSEssU0FBUDtBQUtELE9BUlMsQ0FMTjtBQWNKUyxNQUFBQSxNQUFNLEVBQUV2QixNQUFNLENBQUN1QixNQWRYO0FBZUpDLE1BQUFBLEtBQUssRUFBRXhCLE1BQU0sQ0FBQ3dCLEtBZlY7QUFnQkpDLE1BQUFBLFFBQVEsRUFBRXpCLE1BQU0sQ0FBQ3lCLFFBaEJiO0FBaUJKQyxNQUFBQSxJQUFJLEVBQUUxQixNQUFNLENBQUMwQjtBQWpCVDtBQU5ELEdBQVA7QUEwQkQ7O0FBRURDLE1BQU0sQ0FBQ0MsT0FBUCxHQUFpQjdCLFNBQWpCIiwic291cmNlUm9vdCI6Ii4uLy4uL2xpYiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lIGEgYnVkIGZvciBSRUFETUUubWRcbiAqIEBtZW1iZXJvZiBtb2R1bGU6YXBlLXRtcGwvbGliXG4gKiBAZnVuY3Rpb24gcmVhZG1lQnVkXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnIC0gQ29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7c3RyaW5nfSBjb25maWcuc2VjdGlvbnMgLSBTZWN0aW9uIGZpbGUgcGF0aC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcucGtnIC0gUGFja2FnZSBkYXRhLlxuICogQHBhcmFtIHtzdHJpbmd9IGNvbmZpZy5yZXBvIC0gR2l0SHViIFJlcG9zaXRvcnkgbmFtZS4gKGVnLiAnYXBlLXJlcG8vYXAtdG1wbCcpXG4gKiBAcGFyYW0ge29iamVjdH0gY29uZmlnLmJhZGdlcyAtIEJhZGdlIGRhdGEuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25maWcuYmFkZ2VzLnRyYXZpcz1mYWxzZV0gLSBTaG91bGQgc2hvdyB0cmF2aXMgYmFkZ2UuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtjb25maWcuYmFkZ2VzLmNvZGVjbGltYXRlPWZhbHNlXSAtIFNob3VsZCBzaG93IGNvZGVjbGltYXRlIGJhZGdlLlxuICogQHBhcmFtIHtib29sZWFufSBbY29uZmlnLmJhZGdlcy5jb2RlY2xpbWF0ZUNvdmVyYWdlPWZhbHNlXSAtIFNob3VsZCBzaG93IGNvZGVjbGltYXRlIGNvdmVyYWdlIGJhZGdlLlxuICogQHBhcmFtIHtib29sZWFufSBbY29uZmlnLmJhZGdlcy5nZW1uYXNpdW09ZmFsc2VdIC0gU2hvdWxkIHNob3cgZ2VtbmFzaXVtIGJhZGdlLlxuICogQHBhcmFtIHtib29sZWFufSBbY29uZmlnLmJhZGdlcy5ucG09ZmFsc2VdIC0gU2hvdWxkIHNob3cgbnBtIGJhZGdlLlxuICogQHBhcmFtIHtib29sZWFufSBbY29uZmlnLmJhZGdlcy5ib3dlcj1mYWxzZV0gLSBTaG91bGQgc2hvdyBib3dlciBiYWRnZS5cbiAqIEBwYXJhbSB7b2JqZWN0fSBjb25maWcubGlua3MgLSBMaW5rIHVybHMuXG4gKiBAcGFyYW0ge3N0cmluZ30gY29uZmlnLm92ZXJ2aWV3IC0gT3ZlcnZpZXcgZmlsZSBwYXRoLlxuICogQHBhcmFtIHtvYmplY3R9IGNvbmZpZy52YXJzIC0gQ3VzdG9tIHZhcmlhYmxlcy5cbiAqIEByZXR1cm5zIHtvYmplY3R9IC0gQnVkIG9iamVjdC5cbiAqL1xuXG4ndXNlIHN0cmljdCdcblxuY29uc3QgYWdsb2IgPSByZXF1aXJlKCdhZ2xvYicpXG5jb25zdCBfdG1wbCA9IHJlcXVpcmUoJy4vX3RtcGwnKVxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKVxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0JylcblxuLyoqIEBsZW5kcyByZWFkbWVCdWQgKi9cbmZ1bmN0aW9uIHJlYWRtZUJ1ZCAoY29uZmlnID0ge30pIHtcbiAgbGV0IHsgcGtnLCBzZWN0aW9ucywgcmVwbyB9ID0gY29uZmlnXG4gIGFzc2VydC5vayhwa2csICdjb25maWcucGtnIGlzIHJlcXVpcmVkLicpXG4gIGFzc2VydC5vayhzZWN0aW9ucywgJ2NvbmZpZy5zZWN0aW9ucyBpcyByZXF1aXJlZC4nKVxuICBhc3NlcnQub2socmVwbywgJ2NvbmZpZy5yZXBvIGlzIHJlcXVpcmVkLicpXG4gIHJldHVybiB7XG4gICAgZm9yY2U6IHRydWUsXG4gICAgbW9kZTogJzQ0NCcsXG4gICAgcGF0aDogJ1JFQURNRS5tZCcsXG4gICAgbWtkaXJwOiB0cnVlLFxuICAgIHRtcGw6IF90bXBsKCdoYnMvUkVBRE1FLm1kLmhicycpLFxuICAgIGRhdGE6IHtcbiAgICAgIHBrZyxcbiAgICAgIHJlcG8sXG4gICAgICBiYW5uZXI6IGNvbmZpZy5iYW5uZXIsXG4gICAgICBiYW5uZXJTaXplOiBjb25maWcuYmFubmVyU2l6ZSB8fCAxNDgsXG4gICAgICBzZWN0aW9uczogYWdsb2Iuc3luYyhzZWN0aW9ucykubWFwKChmaWxlbmFtZSkgPT4ge1xuICAgICAgICBsZXQgbmFtZSA9IHBhdGgucmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZmlsZW5hbWUpXG4gICAgICAgIGxldCBhbmNob3IgPSBuYW1lLnJlcGxhY2UoL1tcXC9cXMKlXS9nLCAnLScpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYW5jaG9yOiBwYXRoLmJhc2VuYW1lKGFuY2hvciwgcGF0aC5leHRuYW1lKGFuY2hvcikpLFxuICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBiYWRnZXM6IGNvbmZpZy5iYWRnZXMsXG4gICAgICBsaW5rczogY29uZmlnLmxpbmtzLFxuICAgICAgb3ZlcnZpZXc6IGNvbmZpZy5vdmVydmlldyxcbiAgICAgIHZhcnM6IGNvbmZpZy52YXJzXG4gICAgfVxuICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0gcmVhZG1lQnVkXG4iXX0=