@blogmcp/mdx-render-react
v0.2.1
Published
React renderer for MDX components — implements the @blogmcp/mdx-schema contract alongside @blogmcp/mdx-render-vue. Server-Component-first with two client islands (Tooltip, AudioPlayer).
Maintainers
Readme
@blogmcp/mdx-render-react
Status: scaffold only. Implementation deferred until a React consumer exists (blog or md-editor React port).
This package mirrors @blogmcp/mdx-render-vue against the shared
@blogmcp/mdx-schema contract. Authoring stays identical across frameworks
(same MDX syntax, same metadata, same MCP tool output) — only the renderer swaps.
Contract to implement
import { componentMetadata } from '@blogmcp/mdx-schema'
import type { ComponentType } from 'react'
export interface ReactComponentRegistration {
metadata: ComponentMetadata // from @blogmcp/mdx-schema
render: Record<string, () => Promise<{ default: ComponentType<any> }>>
edit: () => Promise<{ default: ComponentType<any> }>
}
export const reactRegistry: Record<string, ReactComponentRegistration>Implementation mirrors packages/mdx-render-vue/src/registry.ts
— same keys (Callout, YouTube, Gallery, CodeBlock, AudioPlayer), same variants, React
components instead of Vue SFCs. Prefer Ark UI React primitives where Vue uses Ark UI Vue; share
Tailwind classes verbatim.
When to implement
When the first React consumer appears (blog-react or editor-react). Until then, keep the package empty so the schema contract proves framework-neutral by construction.
