From ae3f59765e7319cdfa088e19f672f4752d0393e7 Mon Sep 17 00:00:00 2001 From: Hellings Date: Fri, 23 Oct 2026 08:53:07 -0400 Subject: [PATCH] Initial commit --- index.ts | 14 ++++++++++++++ package.json | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 index.ts create mode 100644 package.json 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" + } +}