UNPKG

myst-cli

Version:
29 lines (28 loc) 1.05 kB
import { fileWarn, RuleId } from 'myst-common'; import { selectAll } from 'unist-util-select'; import { TexParser } from 'tex-to-myst'; export async function rawDirectiveTransform(tree, vfile) { const rawNodes = selectAll('raw', tree); rawNodes.forEach((node) => { if (!node.value) return; if (['latex', 'tex'].includes(node.lang)) { const state = new TexParser(node.value, vfile); node.children = state.ast.children; } else { if (node.lang && node.lang !== 'text') { fileWarn(vfile, `unknown format for raw content: ${node.lang}`, { ruleId: RuleId.directiveArgumentCorrect, note: 'Treating content as text', }); } node.children = [ { type: 'paragraph', children: [{ type: 'text', value: node.value }] }, ]; } }); } export const rawDirectivePlugin = () => async (tree, file) => { await rawDirectiveTransform(tree, file); };