Skip to content

Commit

Permalink
fixup! tools,doc: add support for several flavors of JS code snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
aduh95 committed Feb 3, 2021
1 parent d87a696 commit 31aace5
Showing 1 changed file with 16 additions and 28 deletions.
44 changes: 16 additions & 28 deletions tools/doc/html.js
Expand Up @@ -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 =
`<code class='language-${node.lang} ${node.meta}'>` +
highlighted +
(getLanguage(node.lang || '') ?
highlight(node.lang, node.value) : node).value +
'</code>';
node.type = 'html';

Expand All @@ -207,41 +204,32 @@ function preprocessElements({ filename }) {
console.warn(
`Unknown JavaScript flavor in ${filename}` +
`:${node.position.start.line}:${node.position.start.column}`);
node.value = `<pre>${highlightedHTML}</pre>`;
node.value = `<pre>${highlighted}</pre>`;
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 = `<pre>${highlightedHTML}</pre>`;
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 = `<pre>${highlightedHTML}</pre>`;
node.meta = null;
previousNode.value = `<pre>${previousNode.value}</pre>`;
previousNode.meta = null;
} else {
isJSFlavorSnippet(nextNode) &&
nextNode.meta !== node.meta) {
node.value = highlighted;
} else if (isJSFlavorSnippet(previousNode)) {
node.value = '<pre>' +
'<input class="js-flavor-selector" type="checkbox"' +
(node.meta === 'cjs' ? ' checked' : '') +
' aria-label="Show modern ES modules syntax">' +
previousNode.value +
highlightedHTML +
highlighted +
'</pre>';
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 = `<pre>${highlighted}</pre>`;
node.meta = null;
}
} else {
node.value = `<pre>${highlightedHTML}</pre>`;
node.value = `<pre>${highlighted}</pre>`;
}
} else if (node.type === 'html' && common.isYAMLBlock(node.value)) {
node.value = parseYAML(node.value);
Expand Down

0 comments on commit 31aace5

Please sign in to comment.