@mieweb/wikigdrive
Version:
Google Drive to MarkDown synchronization
23 lines (22 loc) • 928 B
JavaScript
import { walkRecursiveSync } from '../markdownNodesUtils.js';
// Related tests:
// test ./project-overview.md
// test ./example-document.md
export function convertToc(markdownChunks) {
walkRecursiveSync(markdownChunks.body, (chunk, ctx) => {
if (!(chunk.isTag && chunk.tag === 'TOC')) {
return;
}
for (let idx = 0; idx < chunk.children.length; idx++) {
const child = chunk.children[idx];
if (child.isTag && child.tag === 'P') {
const liElement = markdownChunks.createNode('LI');
const children = chunk.children.splice(idx, 1, liElement);
liElement.children.splice(0, 0, ...children);
}
}
const ulElement = markdownChunks.createNode('UL');
const children = chunk.children.splice(0, chunk.children.length, ulElement);
ulElement.children.splice(0, 0, ...children);
});
}