Markdown
渲染 Markdown 内容。中文惯用名:Markdown 渲染。
稳定本期新增已接入
元信息
| 字段 | 值 |
|---|---|
| 规范 ID | component.markdown |
| 名称 | Markdown |
| 二级分类 | 媒体与内容(media) |
| 用途 | 渲染 Markdown 内容 |
| 描述 | 中文惯用名:Markdown 渲染。 |
预览
静态结构:复用 @pactor-app/markdown 的 MarkdownDslComponent——react-markdown AST 渲染(不渲染原始 HTML,安全边界),支持 GFM(表格 / 任务列表 / 删除线)、KaTeX 数学公式、fenced 代码块经 Prism Light 高亮;链接经 isSafeUrl 校验(javascript: 等被拦截)。
DSL 结构
{
"type": "Markdown",
"props": {
"content": "# 文档标题\n\n正文段落,支持 **加粗** 与 [链接](https://example.com)。"
}
}何时用
何时使用
- 渲染 Markdown 内容:文档、帮助中心、AI 生成文本、发布说明。
- 需要 GFM(表格 / 任务列表)、数学公式(KaTeX)与代码高亮。
何时不用
- HTML 源内容:使用 RichText。
- 纯代码展示:使用 CodeBlock。
变体
| 变体 | 视觉形态 | 适用场景 |
|---|---|---|
| 基础排版 | 标题 / 列表 / 引用 / 代码 | 文档正文 |
| GFM 扩展 | 表格 / 任务列表 | 清单、对比表 |
| 数学公式 | KaTeX 渲染 | 技术文档、公式推导 |
API 属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
content | string | — | Markdown 内容(表达式由 Renderer 预先解析) |
className / style | string / CSSProperties | — | 通用:根节点 class 合并 / 内联样式 |
使用规范
- 不可信内容优先 Markdown(AST 渲染无原始 HTML 注入面)。
- 长文档配合 Anchor 做章节定位(标题自动生成层级结构)。
- 代码块语言标注完整(```ts),未注册语言降级为纯文本。
正例
- ✓ 帮助中心:Markdown 文档直接渲染,代码块自动高亮。
- ✓ AI 回答:模型输出的 Markdown 流式内容渲染。
反例
- ✕ 在 Markdown 里塞 HTML 期望原样渲染(AST 模式会忽略 / 转义)。
Design Token 映射
不适用:组件 tokenRefs 为空:样式 Token 数据尚未接入,三层映射(Primitive → Semantic → Component)待样式 Token 接入后回填。