跳到主内容

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

踩坑提醒

安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。

— 来源:通用规则