dsh-better-markdown 使用指南
把 DSH Web 对话里的流式 Markdown 替换为 markstream-react,支持数学公式、Mermaid 图表和 Shiki 代码高亮,完成时不切渲染器。
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-better-markdown
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add dsh-better-markdown
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
关键要点
- 面向流式输出:可持续处理尚未闭合的粗体、代码围栏、列表、表格和数学表达式,适合 LLM token stream。
- 减少完成态切换:流式与 settled assistant message 共用 Markstream renderer,避免完成时替换整棵 Markdown UI。
- 更丰富的 Markdown:支持常用 Markdown、表格、任务列表、引用、链接、图片、KaTeX 数学公式和 Mermaid 图表。
- 兼容 Harness 滚动区:关闭不适用于聊天内部滚动容器的 viewport lazy mounting,避免可见内容停留在骨架占位状态。
- 完整 Markstream 代码块:fenced code 由 Markstream
MarkdownCodeBlockNode与stream-markdown渲染,使用 Shiki 流式高亮,并保留语言标题、复制和展开操作;reasoning、附件、停止状态仍保持 Harness 原行为。
— 源: plugin_wiki.readme_zh (fallback readme_raw)
常见问题
安装后怎么确认插件已经生效?
在 Web 对话里让模型输出任意 Markdown 消息,用浏览器开发工具检查根节点——会看到一个带 data-markdown-renderer="markstream-react" 属性的 div;如果没有这个属性,说明插件没有加载。
卸载插件后会留下渲染残留吗?
不会。客户端在 effect 析构时会撤销 Markstream component policy 并注销 assistant slot 的低优先级 shadow,原 Harness renderer 会立即接管,不需要额外清缓存。
Plan review、轨迹回放这些面板也会被替换吗?
不会。插件只替换 assistant-step 这一路 Web 对话的 slot;plan review、trajectory 等静态 surface 仍由 Harness 原 MarkdownText 处理。
需要安装 Mermaid 或 Shiki 吗?
都不需要。插件已经把 Mermaid 11.16.1、Shiki 4.4.3(含 34 种常用语言)打包进 bundle,离线也能用。
深色模式会自动切换吗?
会。插件通过 DSH shell 的 CSS token 亮度、data-ds-dark-theme 属性和系统深色偏好三层信号判断主题;用户手动切主题后会通过 MutationObserver 在约 80ms 内重新渲染。
流式输出时遇到不完整的代码块怎么办?
markstream-react 专为 LLM token 流设计:未闭合的代码围栏、列表、表格、数学表达式会被持续解析并增量渲染,不会因为格式"暂时不完整"就崩;流结束后同一个 renderer 继续显示,不会切换到另一套实现。
这个插件安全吗?会执行模型生成的 HTML 吗?
不会。raw HTML 会被强制转义为可见文本(htmlPolicy="escape");链接只允许 http:、https:、mailto:;图片只允许 http(s):;Mermaid 在 strict mode 下运行,不存在脚本注入面。
— 源: plugin_wiki.faq_json
兼容性
- DSH: >=0.1.0-rc.5
- Node: >=20 (源码构建需 22.19+)
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则