MarkdownMarkdown
统一的 markdown 渲染。AI 回答、知识库文档、文章、协议——四端里 markdown 是最扎眼的不一致处,原因是每处各写一套样式覆盖。现在规则只有一份(「页面模式 › Markdown」),Web 用这个组件,iOS / Android 按同一张表。
两种模式:
- chat(默认):对话气泡。所有标题降成与正文同大的粗体行(气泡里冒出 26px 大标题很突兀),间距紧,表格横向滚动。
- document:知识库、文档、文章。完整字阶(h1 26 / h2 19 / h3 15),行长 40 汉字。
规则:
- 链接
primary 色带淡下划线;外链新窗口;Electron 里传 onOpenLink 走 openExternal——否则整个客户端会被导航走。
- 代码块用 CodeBlock(两级灰、不做彩色高亮、超过 10 行显示行号);行内 code
muted 底。
- 表格:表头
th 样式退后、行间细线、数字等宽;超宽在容器内横向滚动。
- 引用块
muted 底 + 左侧 2px border,不用彩色竖条。
- 任务列表用 Checkbox 的样式,不用原生方框。
- 中文没有斜体:
*强调* 渲染为 500 字重,不倾斜。
- 不渲染原始 HTML(安全);不内置公式与 mermaid,需要时在消费方加插件。
消费者提供:markdown 字符串、模式、链接处理。
示例
import { Markdown, StreamingMarkdown } from "@wutong/ui";
对话模式
标题降成粗体行,表格横向滚动,代码块两级灰
5 号机组变桨故障分析
近 30 天两次故障都出在变桨系统,都发生在气温低于 −5℃ 的夜间:
| 日期 | 部位 | 处理 |
|---|
| 09-03 | 变桨电机 | 更换 6205 轴承 |
| 09-11 | 变桨电机 | 加热除冰 |
建议把本次工单类型改为「结冰专项」,处理经验参考 经验库 #31。
select * from fault_log where device_id = 5 and temp < -5;
注意:转写结果里「轴承内圈剥落」可能识别错,让师傅确认。
风机巡检记录 · 系统说明书
这份说明书由灵构根据业务包自动生成,描述「风机巡检记录」应用的字段、流程与权限。
字段
| 字段 | 类型 | 说明 |
|---|
| device_id | 引用 | 设备台账 |
| status | 枚举 | pending / doing / done |
流程
- 派单 → 2. 巡检 → 3. 关单(追问处理经验)
关单钩子
关单时弹出语音录入,转写后 可编辑,抽取的标签可点掉。
API
| 属性 | 类型 | 默认 | 说明 |
|---|
| children | string | — | markdown 文本 |
| mode | "chat" | "document" | "chat" | 对话 / 文档 |
| onOpenLink | (href) => void | — | 链接点击;Electron 里走 openExternal |
| codeTitle | boolean | true | 代码块顶部显示语言名 |
| StreamingMarkdown.done | boolean | — | 流式:未完成时末尾带光标 |