obsidian-visualiser/composables/useMarkdown.ts

25 lines
752 B
TypeScript

import { createMarkdownParser } from "@nuxtjs/mdc/runtime/parser/index";
import RemarkBreaks from "remark-breaks";
import RemarkOfm from "remark-ofm";
export default function useMarkdown(): Awaited<ReturnType<typeof createMarkdownParser>>
{
let parser: Awaited<ReturnType<typeof createMarkdownParser>>
const parse = async (markdown: string) => {
if (!parser)
{
parser = await createMarkdownParser({
remark: {
plugins: {
'remark-breaks': { instance: RemarkBreaks },
'remark-ofm': { instance: RemarkOfm }
}
},
});
}
return parser(markdown);
}
return parse;
}