commit ae3f59765e7319cdfa088e19f672f4752d0393e7 Author: Hellings Date: Fri Oct 23 08:53:07 2026 -0400 Initial commit diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..c0f760d --- /dev/null +++ b/index.ts @@ -0,0 +1,14 @@ +import { evaluate } from "@mdx-js/mdx"; +import * as runtime from "react/jsx-runtime"; +import { createElement } from "react"; +import { renderToStaticMarkup } from "react-dom/server"; +import type { Integration } from "muddle/contracts"; + +export async function renderMdx(source: string): Promise { + const module = await evaluate(source, { ...runtime }); + return renderToStaticMarkup(createElement(module.default)); +} + +export function mdxIntegration(): Integration { + return { name: "mdx", setup(context) { context.loader("mdx", { name: "mdx", extensions: [".mdx"], async load(file) { return { data: {}, content: await renderMdx(file.source) }; } }); } }; +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..e53c043 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "@muddle/mdx", + "type": "module", + "exports": "./index.ts", + "version": "0.1.0", + "peerDependencies": { + "muddle": "*" + }, + "dependencies": { + "@mdx-js/mdx": "^3.1.1", + "react": "^19.3.1", + "react-dom": "^19.3.1" + }, + "devDependencies": { + "@types/react": "^19.3.0", + "@types/react-dom": "^19.3.0" + } +}