UNPKG

@mieweb/wikigdrive

Version:

Google Drive to MarkDown synchronization

33 lines (32 loc) 1.12 kB
import { extractText, walkRecursiveAsync } from '../markdownNodesUtils.js'; import { isMarkdownMacro, stripMarkdownMacro } from '../macroUtils.js'; // Related tests: // test ./our-docs // test ./code-links.md export async function removeMarkdownMacro(markdownChunks) { let inHtml = false; await walkRecursiveAsync(markdownChunks.body, async (chunk, ctx) => { if (chunk.isTag && chunk.tag === 'HTML_MODE/') { inHtml = true; return; } if (inHtml) { return; } if (chunk.isTag && chunk.tag === 'CODE') { const innerTxt = extractText(chunk); if (isMarkdownMacro(innerTxt)) { chunk.parent.children.splice(ctx.nodeIdx, 1, { isTag: false, text: stripMarkdownMacro(innerTxt), comment: 'removeMarkdownMacro.ts: replace code part with stripped macro' }); } } }, {}, (chunk) => { if (chunk.isTag && chunk.tag === 'HTML_MODE/') { inHtml = false; return; } }); }