将 dsh Web 对话中的 mermaid 代码围栏默认渲染为 SVG 图表,支持以指针为锚点的丝滑缩放拖拽、按围栏记忆的图/文案切换(localStorage 持久化)、明暗主题跟随,以及完全本地打包的离线渲染引擎。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-mermaid-smooth
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:gitByteFree/dsh-mermaid-smooth
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
将 DeepSeek Harness(dsh)Web 对话中的 mermaid 代码围栏默认渲染为图:丝滑的缩放与拖拽,每张图右上角提供图/文案切换,偏好按围栏记忆,明暗主题跟随,渲染引擎完全本地打包(零 CDN)。
支持的图表类型
插件本地打包了 Mermaid 11.17.2,无需再接入其他图表库,即可渲染以下图表:
| 类型 | 语法 |
|---|---|
| 流程图 | flowchart / graph |
| 时序图 | sequenceDiagram |
| 状态图 | stateDiagram |
| 类图 | classDiagram |
| 思维导图 | mindmap |
| 甘特图 / 时间线 | gantt / timeline |
| ER 图 | erDiagram |
| 用户旅程、饼图、Git 图、桑基图、XY 图、看板、架构图等 | 由内置 Mermaid 引擎支持 |
- 默认成图 — 助手消息中的 mermaid 围栏一旦完整立即渲染为 SVG 图;非 mermaid 代码块不受影响。
- 丝滑交互 — 滚轮缩放以指针为锚点(单一 transform 合成 + 短过渡),拖拽平移 1:1 跟手,双击适应/复位;系统开启「减少动态效果」时全部动画禁用。
- 实用工具 — 可一键适应宽度或全图、复制 Mermaid 源码、下载渲染后的 SVG;全屏时按 Esc 即可退出。
- 右上角切换 — 每张图卡片有「图/文案」切换按钮;一条消息中的多个围栏各自独立。
- 按围栏记忆 — 切换状态存于 localStorage(以围栏源码为键),刷新页面、重连后保持。
- 主题跟随 — 图随 GUI 明暗主题重新渲染。
- 安全离线 — mermaid 以 securityLevel 'strict' 运行(内置消毒、不绑点击事件),引擎打包进插件本体(零 CDN);渲染失败的围栏保留原代码并内联错误条。卸载插件后对话原样还原。
图表卡片工具栏
每张图卡片右上角有一排图标按钮,悬停可见文字提示:
| 图标 | 功能 | 说明 |
|---|---|---|
| ↔ | 适应宽度 | 将图缩放到卡片宽度(也是初始状态) |
| ⊙ | 适应全图 | 缩放到整张图完整显示在视口内 |
| ⧉ | 复制源码 | 把当前围栏的 Mermaid 源码复制到剪贴板。优先使用异步 Clipboard API,不可用时降级为隐藏 textarea 方案;成功显示「已复制源码」,失败显示「无法复制源码」。 |
| ↓ | 下载 SVG | 把渲染好的图保存为 mermaid-diagram.svg —— 矢量文件,在浏览器、文档、设计工具里任意缩放都不失真。图尚未渲染完成时会显示「图表尚未渲染完成」。 |
</> |
图 / 文案 | 在图与源码之间切换;按围栏记忆偏好 |
| ⛶ | 全屏 | 全屏查看图(仅图视图)。Esc 退出,焦点回到全屏按钮。 |
工具栏的状态提示约两秒后自动消失,并通过 aria-live="polite" 播报给屏幕阅读器。
截图



安装
dsh-mermaid-smooth 是 DeepSeek Harness (dsh) Web 界面的插件。使用前请确保你已安装并配置好 dsh 命令行工具及 Web 环境。
四种方式任选其一,装完重启 DSH Web 即生效(当前会话会中断,但 DSH 会话有磁盘持久化,重启后可以恢复)。
方式一:npm 正式包(推荐,最简单)
dsh plugin --profile web add dsh-mermaid-smooth
安装时无需编译。pnpm 可能会自动把该包加进 profile 的 pnpm-workspace.yaml 的 minimumReleaseAgeExclude(因为包刚发布)——这是预期行为,无副作用。
方式二:从 GitHub 安装(固定到指定提交)
dsh plugin --profile web add 'github:gitByteFree/dsh-mermaid-smooth#<40位commit>'
固定到你想装的 commit(如仓库提交历史页显示的 main HEAD),之后 main 的新改动不会静默改变已安装代码。源码安装时会在本机构建(prepare 脚本执行 esbuild 打包),需要 git 与 Node.js ≥ 20。
pnpm ≥ 10 默认拦截 git 来源包的 prepare 构建脚本:首次安装会报 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED,并把需要加白名单的精确键名打印在报错里。把该键原样复制(内嵌 codeload URL 和完整 commit sha,只写短包名匹配不上)到 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,再重新执行安装:
allowBuilds:
dsh-mermaid-smooth@https://codeload.github.com/gitByteFree/dsh-mermaid-smooth/tar.gz/<40位commit>: true
这与任何构建期脚本是同一种信任决定:只对你审查过来源的包放行。如果不想在安装时执行构建代码,请用方式一或方式三 —— 它们内置预构建产物,无需任何 allowBuilds 条目。
方式三:从 Release tarball 安装(离线 / 不便走 git 的环境)
从本仓库 Releases 下载 dsh-mermaid-smooth-0.2.0.tgz(内含构建好的 lib/client.js,安装时无需执行任何 prepare 脚本),进入下载目录后执行:
dsh plugin --profile web add ./dsh-mermaid-smooth-0.2.0.tgz
命令里的 0.2.0 是真实文件名,不是占位符 —— 请改成你实际下载的版本,并去掉一切 <...> 尖括号(zsh 会把裸的 <...> 当作输入重定向,报「没有那个文件或目录」)。保留 ./ 前缀:dsh plugin add 只把 ./、../ 开头的路径锚定到你当前所在目录,裸文件名会在 profile 目录里查找。
方式四:克隆后从本地路径安装(开发迭代)
git clone git@github.com:gitByteFree/dsh-mermaid-smooth.git
cd dsh-mermaid-smooth
dsh plugin --profile web add .
安装后重启 web 应用(dsh web 或你的 dsh-web 服务),使新 bundle 层生效。
许可
MIT
链接
同类插件
tt-a1i/archify#integrations/deepseek-harness★ 83592
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。
dream-num/dsh-univer-office★ 537
为 DeepSeek Harness 打造一个真正的办公环境。Univer Office 插件将电子表格、文档、幻灯片、画布、多维表格等汇聚到同一个运行时——数据互联、修改经过校验、变更按版本管理,并以隔离工作树支持多 Agent 协作。
PerryLink/dsh-industry-research★ 211
面向 DeepSeek Harness 的确定性行业研究报告:公司与行业研究流程基于分阶段证据产出结构化、可核验的报告。
PolinniZhong/dsh-knit★ 54
把会话工作区里已有的 Markdown 文档、图片与视频列进 DSH 侧边栏,按与当前对话的相关性排序:用最近几条消息在本地与文档标题、摘要、正文做带 IDF 权重的匹配,不调用模型,也没有网络出口。列表来自工作区扫描,而不是「最近打开记录」,所以重启 DSH 或新开会话都不会变空。图片与视频可就地预览,相对路径图片真实渲染,视频走 HTTP Range 流式播放。预览头下方的引用条显示当前这篇被哪些文档引用、又引用了哪些,点一项即可跳过去。同一份排序也作为 knit_docs 工具交给 agent:它返回最相关的若干篇,并附上每篇里命中的那段原文(有命中时才附)。
HuanLinOTO/dsh-plugin-mineru★ 46
向模型暴露 MineRU 文档解析工具。
kw78/dsh-office-tools★ 31
面向 agent 的工作区安全 Office 工具集:创建/读取 Word、创建/读取/更新 Excel、创建/读取 PowerPoint,并支持 PNG/JPG/GIF 图片排版。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。