diff --git a/tools/doc/html.js b/tools/doc/html.js
index 243fbfea9de692..4613ab7ec5c59d 100644
--- a/tools/doc/html.js
+++ b/tools/doc/html.js
@@ -189,13 +189,10 @@ function preprocessElements({ filename }) {
`No language set in ${filename}, ` +
`line ${node.position.start.line}`);
}
- const language = (node.lang || '').split(' ')[0];
- const highlighted = getLanguage(language) ?
- highlight(language, node.value).value :
- node.value;
- const highlightedHTML =
+ const highlighted =
`` +
- highlighted +
+ (getLanguage(node.lang || '') ?
+ highlight(node.lang, node.value) : node).value +
'
';
node.type = 'html';
@@ -207,41 +204,32 @@ function preprocessElements({ filename }) {
console.warn(
`Unknown JavaScript flavor in ${filename}` +
`:${node.position.start.line}:${node.position.start.column}`);
- node.value = `
${highlightedHTML}`; + node.value = `
${highlighted}`; node.meta = null; } else if (!isJSFlavorSnippet(previousNode) && - !isJSFlavorSnippet(nextNode)) { - console.warn( - `JavaScript flavored blocks should go in pairs in ${filename}` + - `:${node.position.start.line}:${node.position.start.column}`); - node.value = `
${highlightedHTML}`; - node.meta = null; - } else if (!isJSFlavorSnippet(previousNode) && - isJSFlavorSnippet(nextNode)) { - node.value = highlightedHTML; - } else if (node.meta === previousNode.meta) { - console.warn( - 'Cannot bundle two JavaScript blocks of the same flavor in ' + - filename + - `:${node.position.start.line}:${node.position.start.column}`); - node.value = `
${highlightedHTML}`; - node.meta = null; - previousNode.value = `
${previousNode.value}`; - previousNode.meta = null; - } else { + isJSFlavorSnippet(nextNode) && + nextNode.meta !== node.meta) { + node.value = highlighted; + } else if (isJSFlavorSnippet(previousNode)) { node.value = '
' + '' + previousNode.value + - highlightedHTML + + highlighted + ''; node.meta = null; previousNode.value = ''; previousNode.meta = null; + } else { + console.warn( + `Unused JavaScript flavored block in ${filename}` + + `:${node.position.start.line}:${node.position.start.column}`); + node.value = `
${highlighted}`; + node.meta = null; } } else { - node.value = `
${highlightedHTML}`; + node.value = `
${highlighted}`; } } else if (node.type === 'html' && common.isYAMLBlock(node.value)) { node.value = parseYAML(node.value);