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 |
|
23 |
|
24 | const aglob = require('aglob')
|
25 | const _tmpl = require('./_tmpl')
|
26 | const path = require('path')
|
27 | const assert = require('assert')
|
28 |
|
29 | /** @lends readmeBud */
|
30 | function 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 |
|
63 | module.exports = readmeBud
|