You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.5 KiB
56 lines
1.5 KiB
'use strict';
|
|
|
|
const { readFileSync, readdirSync, writeFileSync } = require('fs');
|
|
|
|
// Get all markdown stubs
|
|
const header = readFileSync('bundler/header.md', 'utf-8');
|
|
const badges = readFileSync('bundler/badges.md', 'utf-8');
|
|
const installation = readFileSync('bundler/installation.md', 'utf-8');
|
|
const api = readFileSync('bundler/api.md', 'utf-8');
|
|
const strictnessAndComparisons = readFileSync('bundler/strictness_and_comparisons.md', 'utf-8');
|
|
const notImplemented = readFileSync('bundler/not_implemented.md', 'utf-8');
|
|
const contribute = readFileSync('bundler/contribute.md', 'utf-8');
|
|
const license = readFileSync('bundler/license.md', 'utf-8');
|
|
|
|
// Get all API docs
|
|
const methods = readdirSync('docs/api', 'utf-8');
|
|
|
|
// Build table of contents
|
|
const tableOfContents = methods.map((file) => {
|
|
const methodName = file.replace('.md', '');
|
|
|
|
return `- [${methodName}](#${methodName.toLowerCase()})`;
|
|
}).join('\n');
|
|
|
|
// Build methods "readme"
|
|
const methodDocumentation = methods.map((file) => {
|
|
let content = readFileSync(`docs/api/${file}`, 'utf-8');
|
|
|
|
const lines = content.split('\n');
|
|
|
|
lines[0] = `###${lines[0]}`;
|
|
lines.pop();
|
|
lines.pop();
|
|
|
|
content = lines.join('\n');
|
|
content = content.replace(/(\r\n|\r|\n){2,}/g, '$1\n');
|
|
|
|
return content;
|
|
}).join('\n\n');
|
|
|
|
writeFileSync(
|
|
'README.md',
|
|
[
|
|
header,
|
|
badges,
|
|
installation,
|
|
api,
|
|
tableOfContents,
|
|
strictnessAndComparisons,
|
|
notImplemented,
|
|
methodDocumentation,
|
|
contribute,
|
|
license,
|
|
].join('\n\n'),
|
|
);
|