puppy-api-docs
Version:
Genernate material api docs from your comments.
36 lines (32 loc) • 1.58 kB
JavaScript
const comments = require('./lib/comments');
const fs = require('fs');
const Doc = require('./models/doc');
const TemplateGenerator = require('./lib/templateGenerator');
const FileManager = require('./lib/fileManager');
const Handlebars = require('handlebars');
const HandlerbarsHelpers = require('./utils/handlebarsHelpers');
const ArgumentParser = require('./lib/argumentsParser');
const DocUtils = require('./lib/docUtils');
const path = require('path');
Handlebars.registerHelper(HandlerbarsHelpers);
const meta = ArgumentParser.processArguments(process.argv);
const jsFiles = FileManager.readJsFiles(meta.processingPath);
const docs = [];
console.log("JS files found:\n", jsFiles);
jsFiles.forEach((file) => {
console.log('Processing file:', file);
if (file.indexOf('/api_docs/lib/comments.js') === -1) {
const input = FileManager.readAsString(file);
const parseResult = comments(input);
const docsFromResult = parseResult.comments.map((comment) => docs.push(new Doc(comment)));
docs.concat(docsFromResult);
}
});
const groupedDocs = DocUtils.groupDocs(docs);
const html = TemplateGenerator.generateDocPage(groupedDocs);
FileManager.checkAndCreateFolder(path.join(process.cwd(), 'api_docs'));
FileManager.saveFile('doc.html', path.join(process.cwd(), 'api_docs'), html);
FileManager.copyFolder(path.join(path.dirname(require.main.filename),'assets/css'), path.join(process.cwd(), 'api_docs/css'));
console.log('\nDocumentation Generated!');
console.log('Path: ', path.join(process.cwd(), 'api_docs'), '\n');