UNPKG

ape-tmpl

Version:
70 lines (63 loc) 7.84 kB
/** * 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. */ 'use strict'; 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=