Skip to content

Commit

Permalink
tools: remove redundant code in doc/html.js
Browse files Browse the repository at this point in the history
This PR reduces code by 40 lines and docs size by ~7.5 KB. Only
<div class="signature">...</div> wrappers are removed from docs,
no other changes are found in results.

PR-URL: nodejs#20514
Reviewed-By: Ruben Bridgewater <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
  • Loading branch information
vsemozhetbyt authored and apapirovski committed May 7, 2018
1 parent 2a96ee2 commit 974df9c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 55 deletions.
6 changes: 3 additions & 3 deletions test/doctool/test-doctool-html.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ const testData = [
file: fixtures.path('order_of_end_tags_5873.md'),
html: '<h3>ClassMethod: Buffer.from(array) <span> ' +
'<a class="mark" href="#foo_class_method_buffer_from_array" ' +
'id="foo_class_method_buffer_from_array">#</a> </span> </h3><div' +
'class="signature"><ul><li><code>array</code><a ' +
'id="foo_class_method_buffer_from_array">#</a> </span> </h3>' +
'<ul><li><code>array</code><a ' +
'href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/' +
'Reference/Global_Objects/Array" class="type">&lt;Array&gt;</a></li>' +
'</ul></div>'
'</ul>'
},
{
file: fixtures.path('doc_with_yaml.md'),
Expand Down
64 changes: 12 additions & 52 deletions tools/doc/html.js
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ function render(opts, cb) {
filename = path.basename(filename, '.md');

parseText(lexed);
lexed = parseLists(lexed);
lexed = preprocessElements(lexed);

// Generate the table of contents.
// This mutates the lexed contents in-place.
Expand Down Expand Up @@ -231,25 +231,28 @@ function parseText(lexed) {
});
}

// Just update the list item text in-place.
// Lists that come right after a heading are what we're after.
function parseLists(input) {
// Preprocess stability blockquotes and YAML blocks.
function preprocessElements(input) {
var state = null;
const savedState = [];
var depth = 0;
const output = [];
let headingIndex = -1;
let heading = null;

output.links = input.links;
input.forEach(function(tok, index) {
if (tok.type === 'heading') {
headingIndex = index;
heading = tok;
}
if (tok.type === 'html' && common.isYAMLBlock(tok.text)) {
tok.text = parseYAML(tok.text);
}
if (tok.type === 'blockquote_start') {
savedState.push(state);
state = 'MAYBE_STABILITY_BQ';
return;
}
if (tok.type === 'blockquote_end' && state === 'MAYBE_STABILITY_BQ') {
state = savedState.pop();
state = null;
return;
}
if ((tok.type === 'paragraph' && state === 'MAYBE_STABILITY_BQ') ||
Expand All @@ -271,50 +274,7 @@ function parseLists(input) {
return;
} else if (state === 'MAYBE_STABILITY_BQ') {
output.push({ type: 'blockquote_start' });
state = savedState.pop();
}
}
if (state === null ||
(state === 'AFTERHEADING' && tok.type === 'heading')) {
if (tok.type === 'heading') {
headingIndex = index;
heading = tok;
state = 'AFTERHEADING';
}
output.push(tok);
return;
}
if (state === 'AFTERHEADING') {
if (tok.type === 'list_start') {
state = 'LIST';
if (depth === 0) {
output.push({ type: 'html', text: '<div class="signature">' });
}
depth++;
output.push(tok);
return;
}
if (tok.type === 'html' && common.isYAMLBlock(tok.text)) {
tok.text = parseYAML(tok.text);
}
state = null;
output.push(tok);
return;
}
if (state === 'LIST') {
if (tok.type === 'list_start') {
depth++;
output.push(tok);
return;
}
if (tok.type === 'list_end') {
depth--;
output.push(tok);
if (depth === 0) {
state = null;
output.push({ type: 'html', text: '</div>' });
}
return;
state = null;
}
}
output.push(tok);
Expand Down

0 comments on commit 974df9c

Please sign in to comment.