UNPKG

1.3 kBPlain TextView Raw
1#!/usr/bin/env node
2
3/**
4 * POC doc generation script.
5 */
6
7/* eslint-disable import/no-extraneous-dependencies, no-console */
8
9const fs = require('fs');
10const jsdoc2md = require('jsdoc-to-markdown');
11const mkpath = require('mkpath');
12const path = require('path');
13const rimraf = require('rimraf');
14
15const OUTDIR = '../docs/auto';
16
17rimraf.sync(path.resolve(__dirname, OUTDIR));
18
19const outputDir = path.resolve(__dirname, OUTDIR);
20
21const data = jsdoc2md.getTemplateDataSync({ files: 'src/**/*.js' });
22
23const moduleNames = data.reduce((res, obj) => {
24 if (obj.kind === 'module') res.push(obj.name);
25 return res;
26}, []);
27
28moduleNames.forEach((name) => {
29 const template = `{{#module name="${name}"}}{{>docs}}{{/module}}`;
30 console.log(`rendering ${name}`);
31 const output = jsdoc2md.renderSync({ data, template });
32 const destFile = `${outputDir}/${name}.md`;
33 mkpath.sync(path.dirname(destFile));
34 fs.writeFileSync(destFile, output);
35});
36
37const template = '{{>module-index}}';
38const output = jsdoc2md.renderSync({
39 data,
40 partial: [
41 path.resolve(__dirname, '../config/docgen/module-index-dl.hbs'),
42 path.resolve(__dirname, '../config/docgen/doc-link-html.hbs'),
43 ],
44 template,
45});
46const dest = `${outputDir}/index.md`;
47mkpath.sync(path.dirname(dest));
48fs.writeFileSync(dest, output);