#!/usr/bin/env node /** * POC doc generation script. */ /* eslint-disable import/no-extraneous-dependencies, no-console */ const fs = require('fs'); const jsdoc2md = require('jsdoc-to-markdown'); const mkpath = require('mkpath'); const path = require('path'); const rimraf = require('rimraf'); const OUTDIR = '../docs/auto'; rimraf.sync(path.resolve(__dirname, OUTDIR)); const outputDir = path.resolve(__dirname, OUTDIR); const data = jsdoc2md.getTemplateDataSync({ files: 'src/**/*.js' }); const moduleNames = data.reduce((res, obj) => { if (obj.kind === 'module') res.push(obj.name); return res; }, []); moduleNames.forEach((name) => { const template = `{{#module name="${name}"}}{{>docs}}{{/module}}`; console.log(`rendering ${name}`); const output = jsdoc2md.renderSync({ data, template }); const destFile = `${outputDir}/${name}.md`; mkpath.sync(path.dirname(destFile)); fs.writeFileSync(destFile, output); }); const template = '{{>module-index}}'; const output = jsdoc2md.renderSync({ data, partial: [ path.resolve(__dirname, '../config/docgen/module-index-dl.hbs'), path.resolve(__dirname, '../config/docgen/doc-link-html.hbs'), ], template, }); const dest = `${outputDir}/index.md`; mkpath.sync(path.dirname(dest)); fs.writeFileSync(dest, output);