UNPKG

@studiocms/md

Version:

Add Markdown Support to your StudioCMS project with ease!

51 lines (50 loc) 1.41 kB
import rendererConfig from "studiocms:md/config"; import { createMarkdownProcessor as createAstroMD } from "@astrojs/markdown-remark"; import { createMarkdownProcessor as createStudioCMSMD } from "@studiocms/markdown-remark-processor"; import { shared } from "./shared.js"; function parseCallouts(opt) { if (opt === false) return false; if (!opt) return void 0; return { theme: opt }; } const parseStudioCMSMDOpts = () => { if (shared.mdConfig?.flavor === "studiocms") { return { autolink: shared.mdConfig?.autoLinkHeadings, discordSubtext: shared.mdConfig?.discordSubtext, callouts: parseCallouts(shared.mdConfig?.callouts) }; } return { autolink: false, discordSubtext: false, callouts: void 0 }; }; let astroMDPromise; let studioCMSMDPromise; function preRender() { return async (content) => { if (rendererConfig.flavor === "astro") { if (!astroMDPromise) astroMDPromise = createAstroMD(shared.astroMDRemark); const astroMD = await astroMDPromise; return (await astroMD.render(content)).code; } if (!studioCMSMDPromise) { studioCMSMDPromise = createStudioCMSMD({ ...shared.astroMDRemark ?? {}, studiocms: parseStudioCMSMDOpts() }); } const studioCMSMD = await studioCMSMDPromise; return (await studioCMSMD.render(content)).code; }; } export { parseCallouts, preRender };