UNPKG

2.12 kBJavaScriptView Raw
1/**
2 * Define a bud for README.md
3 * @memberof module:ape-tmpl/lib
4 * @function readmeBud
5 * @param {object} config - Configuration.
6 * @param {string} config.sections - Section file path.
7 * @param {object} config.pkg - Package data.
8 * @param {string} config.repo - GitHub Repository name. (eg. 'ape-repo/ap-tmpl')
9 * @param {object} config.badges - Badge data.
10 * @param {boolean} [config.badges.travis=false] - Should show travis badge.
11 * @param {boolean} [config.badges.codeclimate=false] - Should show codeclimate badge.
12 * @param {boolean} [config.badges.codeclimateCoverage=false] - Should show codeclimate coverage badge.
13 * @param {boolean} [config.badges.gemnasium=false] - Should show gemnasium badge.
14 * @param {boolean} [config.badges.npm=false] - Should show npm badge.
15 * @param {boolean} [config.badges.bower=false] - Should show bower badge.
16 * @param {object} config.links - Link urls.
17 * @param {string} config.overview - Overview file path.
18 * @param {object} config.vars - Custom variables.
19 * @returns {object} - Bud object.
20 */
21
22'use strict'
23
24const aglob = require('aglob')
25const _tmpl = require('./_tmpl')
26const path = require('path')
27const assert = require('assert')
28
29/** @lends readmeBud */
30function readmeBud (config = {}) {
31 let { pkg, sections, repo } = config
32 assert.ok(pkg, 'config.pkg is required.')
33 assert.ok(sections, 'config.sections is required.')
34 assert.ok(repo, 'config.repo is required.')
35 return {
36 force: true,
37 mode: '444',
38 path: 'README.md',
39 mkdirp: true,
40 tmpl: _tmpl('hbs/README.md.hbs'),
41 data: {
42 pkg,
43 repo,
44 banner: config.banner,
45 bannerSize: config.bannerSize || 148,
46 sections: aglob.sync(sections).map((filename) => {
47 let name = path.relative(process.cwd(), filename)
48 let anchor = name.replace(/[\/\¥]/g, '-')
49 return {
50 anchor: path.basename(anchor, path.extname(anchor)),
51 name,
52 filename
53 }
54 }),
55 badges: config.badges,
56 links: config.links,
57 overview: config.overview,
58 vars: config.vars
59 }
60 }
61}
62
63module.exports = readmeBud