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

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