x-chatmarkdown-u AI聊天Markdown
AI 聊天气泡的 Markdown 渲染。支持 GFM 表格、代码高亮、数学公式和流式追加。思考时间、重试、复制按钮请自己在外层做。
兼容性
| Harmony | IOS | Android | WEB | 小程序 |
|---|---|---|---|---|
| 支持 | 支持 | 支持 | 支持 | 支持 |
调用
vue
<x-chatmarkdown-u
ref="bubbleRef"
:content="item.content"
:dark="false"
:font-size="14"
@linkclick="onLinkClick"
@codecopy="onCodeCopy"
@longpress="onLongPress"
></x-chatmarkdown-u>流式:
ts
bubbleRef.value?.appendChunk(tokenText)
bubbleRef.value?.finish()只解析不渲染:
ts
import { xChatMarkdownParse } from "@/uni_modules/x-chatmarkdown-u"
xChatMarkdownParse(md, {
success: (res) => {
console.log(res.plainText, res.ir)
}
})参数
| 字段 | 说明 | 默认 |
|---|---|---|
| content | Markdown | "" |
| dark | 深色 | false |
| fontSize | 基础字号 px | 15 |
| reasoningTime | 推理秒数,组件不渲染 | 0 |
| status | idle / streaming / done / error,组件不渲染 | idle |
| errorMsg | 失败文案,组件不渲染 | "" |
| showRetry / showCopy | 兼容保留,组件不渲染按钮 | true |
事件
| 名称 | 参数 | 说明 |
|---|---|---|
| sizechange | { width, height } | 内容尺寸变化 |
| linkclick | { href, text } | 点击链接 |
| codecopy | { lang, code } | 点击代码块复制 |
| longpress | { text } | 长按气泡;App 端已复制纯文本 |
| rendered | { blockCount, parseMs } | 本次解析渲染完成 |
| error | { errSubject, errCode, errMsg } | 解析或渲染失败 |
方法
| 名称 | 需要 | 说明 |
|---|---|---|
| setContent | content: string | 全量更新 Markdown |
| appendChunk | chunk: string | 流式追加一段文本 |
| finish | 无 | 结束流式,立刻把剩余内容渲染完 |
| getContent | 无 | 返回当前原始 Markdown |
| getPlainText | 无 | 返回纯文本,可用来复制整条 |
| getIR | 无 | 返回渲染中间层 JSON |
| xChatMarkdownParse | md,可选 success / fail / complete | 只解析不渲染,独立函数 |
版本
版权归https://xui.tmui.design你不得修改及二次开发,仅供TMUI4会员商用使用。不得转给非VIP会员使用,一经查实数倍赔偿,并追究法律责任。
更新日志
1.1.0(2026-08-04)
- Web / 微信小程序:Emscripten 编译独立
.wasm+ ES6 glue(export default),与 App 共用同一套 IR - Web:
uni.request拉 wasm +instantiateWasm(对齐 uni-cmark web) - 小程序:
WXWebAssembly.instantiate(包内路径)(static/mp-weixin/*.wasm,对齐 uni-cmark loader) - 新增
x-chatmarkdown-u-node递归块节点;数学字体 base64@font-face - 重新编译:
bash native-src/web/build_wasm.sh
1.0.0(2026-08-03)
- 首个版本
- cmark-gfm 0.29.0.gfm.13 C 核心交叉编译三端(Android AAR / iOS Framework / HarmonyOS HAR)
- GFM 解析:标题、加粗/斜体/删除线、行内代码、链接、引用、有序/无序/任务列表、表格(对齐)、分割线
- 代码块:语言标签 + 右上角复制 + 通用关键字高亮(kotlin/java/swift/js/ts/python/c/cpp/go/rust/bash/sql/json/dart/ruby/lua/php/html/css 等)
- 数学公式:块级
$$...$$与 ```math 代码块、行内$...$,LaTeX 符号 Unicode 化渲染(\frac、\sqrt、上下标等) - 流式渲染:appendChunk 节流解析 + 块级 hash 缓存复用
- 交互:长按复制整条气泡、代码块复制、链接点击事件
- 独立 API
xChatMarkdownParse:导出 IR 中间件供自行渲染;组件暴露getIR/getPlainText/getContent
