import MarkdownIt from "markdown-it" const mark = new MarkdownIt() const mdToHtml = (str: string) => { const content = mark.render(str) return ` import React from "react" export default React.createElement('div', {dangerouslySetInnerHTML:{__html: \`${content}\`} })` } export default function md(): any { return { name: "vite-plugin-md", enforce: "pre", transform(raw: any, id: any) { if (!/\.md/g.test(id)) return try { return mdToHtml(raw) } catch (e) { this.error(e) return "" } }, async handleHotUpdate(ctx: any) { if (!/\.md/g.test(ctx.file)) return const defaultRead = ctx.read ctx.read = async function() { return mdToHtml(await defaultRead()) } } } }