summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorVse Mozhet Byt <vsemozhetbyt@gmail.com>2018-04-25 23:44:38 +0300
committerVse Mozhet Byt <vsemozhetbyt@gmail.com>2018-04-28 00:52:25 +0300
commitad6a65ba110932d5af187b8422ce2cdb808a4a2f (patch)
treeb316a60a25ea042dbc8221746a8baf32c54b0d14 /tools
parenta4b4854e2ff0f3de69caa5e46d001575b9e22273 (diff)
downloadandroid-node-v8-ad6a65ba110932d5af187b8422ce2cdb808a4a2f.tar.gz
android-node-v8-ad6a65ba110932d5af187b8422ce2cdb808a4a2f.tar.bz2
android-node-v8-ad6a65ba110932d5af187b8422ce2cdb808a4a2f.zip
tools: simplify HTML generation
PR-URL: https://github.com/nodejs/node/pull/20307 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/doc/generate.js5
-rw-r--r--tools/doc/html.js85
2 files changed, 23 insertions, 67 deletions
diff --git a/tools/doc/generate.js b/tools/doc/generate.js
index 0da9dba4e6..9f217b19c7 100644
--- a/tools/doc/generate.js
+++ b/tools/doc/generate.js
@@ -29,7 +29,6 @@ const fs = require('fs');
const args = process.argv.slice(2);
let format = 'json';
-let template = null;
let filename = null;
let nodeVersion = null;
let analytics = null;
@@ -39,8 +38,6 @@ args.forEach(function(arg) {
filename = arg;
} else if (arg.startsWith('--format=')) {
format = arg.replace(/^--format=/, '');
- } else if (arg.startsWith('--template=')) {
- template = arg.replace(/^--template=/, '');
} else if (arg.startsWith('--node-version=')) {
nodeVersion = arg.replace(/^--node-version=/, '');
} else if (arg.startsWith('--analytics=')) {
@@ -71,7 +68,7 @@ function next(er, input) {
break;
case 'html':
- require('./html')({ input, filename, template, nodeVersion, analytics },
+ require('./html')({ input, filename, nodeVersion, analytics },
(err, html) => {
if (err) throw err;
console.log(html);
diff --git a/tools/doc/html.js b/tools/doc/html.js
index ff0230309e..439fc05701 100644
--- a/tools/doc/html.js
+++ b/tools/doc/html.js
@@ -25,7 +25,6 @@ const common = require('./common.js');
const fs = require('fs');
const marked = require('marked');
const path = require('path');
-const preprocess = require('./preprocess.js');
const typeParser = require('./type-parser.js');
module.exports = toHTML;
@@ -42,76 +41,36 @@ marked.setOptions({
renderer: renderer
});
-// TODO(chrisdickinson): never stop vomiting / fix this.
-const gtocPath = path.resolve(path.join(
- __dirname,
- '..',
- '..',
- 'doc',
- 'api',
- '_toc.md'
-));
-var gtocLoading = null;
-var gtocData = null;
+const docPath = path.resolve(__dirname, '..', '..', 'doc');
+
+const gtocPath = path.join(docPath, 'api', '_toc.md');
+const gtocMD = fs.readFileSync(gtocPath, 'utf8').replace(/^@\/\/.*$/gm, '');
+const gtocHTML = marked(gtocMD).replace(
+ /<a href="(.*?)"/g,
+ (all, href) => `<a class="nav-${toID(href)}" href="${href}"`
+);
+
+const templatePath = path.join(docPath, 'template.html');
+const template = fs.readFileSync(templatePath, 'utf8');
+
var docCreated = null;
var nodeVersion = null;
/**
- * opts: input, filename, template, nodeVersion.
+ * opts: input, filename, nodeVersion.
*/
function toHTML(opts, cb) {
- const template = opts.template;
-
nodeVersion = opts.nodeVersion || process.version;
docCreated = opts.input.match(DOC_CREATED_REG_EXP);
- if (gtocData) {
- return onGtocLoaded();
- }
-
- if (gtocLoading === null) {
- gtocLoading = [onGtocLoaded];
- return loadGtoc(function(err, data) {
- if (err) throw err;
- gtocData = data;
- gtocLoading.forEach(function(xs) {
- xs();
- });
- });
- }
-
- if (gtocLoading) {
- return gtocLoading.push(onGtocLoaded);
- }
-
- function onGtocLoaded() {
- const lexed = marked.lexer(opts.input);
- fs.readFile(template, 'utf8', function(er, template) {
- if (er) return cb(er);
- render({
- lexed: lexed,
- filename: opts.filename,
- template: template,
- nodeVersion: nodeVersion,
- analytics: opts.analytics,
- }, cb);
- });
- }
-}
-
-function loadGtoc(cb) {
- fs.readFile(gtocPath, 'utf8', function(err, data) {
- if (err) return cb(err);
-
- preprocess(gtocPath, data, function(err, data) {
- if (err) return cb(err);
-
- data = marked(data).replace(/<a href="(.*?)"/gm, function(a, m) {
- return `<a class="nav-${toID(m)}" href="${m}"`;
- });
- return cb(null, data);
- });
- });
+ const lexed = marked.lexer(opts.input);
+ render({
+ lexed: lexed,
+ filename: opts.filename,
+ template: template,
+ nodeVersion: nodeVersion,
+ analytics: opts.analytics,
+ }, cb);
}
function toID(filename) {
@@ -150,7 +109,7 @@ function render(opts, cb) {
template = template.replace(/__TOC__/g, toc);
template = template.replace(
/__GTOC__/g,
- gtocData.replace(`class="nav-${id}`, `class="nav-${id} active`)
+ gtocHTML.replace(`class="nav-${id}`, `class="nav-${id} active`)
);
if (opts.analytics) {