tools: remove redundant code in doc/html.js
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: https://github.com/nodejs/node/pull/20514 Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
This commit is contained in:
parent
2a96ee284c
commit
974df9c2be
@ -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"><Array></a></li>' +
|
||||
'</ul></div>'
|
||||
'</ul>'
|
||||
},
|
||||
{
|
||||
file: fixtures.path('doc_with_yaml.md'),
|
||||
|
@ -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.
|
||||
@ -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') ||
|
||||
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user