Packages & Implementations
All available parsers and renderers, plus live framework demos. Toggle to view source for each example.
Architecture Overview
Markdown UI uses a two-stage approach: Parsers convert widget syntax to JSON, then Renderers display interactive components in your framework. Choose one parser + one renderer for your stack.
Choose Framework
React @markdown-ui/react ↗
Live
import { MarkdownUI } from '@markdown-ui/react';
import '@markdown-ui/react/widgets.css';
import { Marked } from 'marked';
import { markedUiExtension } from '@markdown-ui/marked-ext';
const marked = new Marked();
marked.use(markedUiExtension);
export default function ReactDemo() {
const exampleMarkdown = `# React Implementation
This demo runs using **@markdown-ui/react**:
```markdown-ui-widget
button-group react-choice [Hooks Context Redux] Hooks
```
```markdown-ui-widget
select react-version [16 17 18 19] 18
```
```markdown-ui-widget
slider react-components 1 50 1 12
````;
const renderedHtml = marked.parse(exampleMarkdown);
return <MarkdownUI html={renderedHtml} />;
} Widget Events
No events yet
Interact with any framework's widgets to see events here.
All Packages
Parser Packages
P
@markdown-ui/mdui-lang
Core DSL parser for converting widget syntax to JSON. Use this if you're building custom Markdown parsers or need standalone widget parsing.
import { parseDSL } from '@markdown-ui/mdui-lang';
const result = parseDSL('button-group plan [Basic Pro] Basic'); M
@markdown-ui/marked-ext
Marked.js extension that integrates mdui-lang parser. Use this if you're using Marked.js as your primary Markdown parser.
import { markedUiExtension } from '@markdown-ui/marked-ext';
marked.use(markedUiExtension); Renderers
Usage Pattern
Choose one parser + one renderer for your framework:
npm install @markdown-ui/marked-ext @markdown-ui/react