将 Mermaid 代码围栏渲染为 SVG 图表,支持流式输出、图形/代码切换、全屏缩放与拖拽、SVG 导出,以及内置的同源运行时。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-mermaid
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:MrmoLabs/dsh-mermaid
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。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 Web 会话中把 Mermaid 围栏代码块渲染为 SVG 图形,并提供代码 / 图形双向切换。插件支持流式输出、深色主题、全屏查看、缩放与拖拽、SVG 导出,并在渲染失败时自动回退到源代码。
功能特性
- 支持
mermaid、mermaidjs和mmd围栏代码块 - 兼容 DSH/Shiki plain fallback,此时代码元素可能没有 language class
- 固定并打包 Mermaid
11.17.0,运行时不依赖 CDN - 仅在首次检测到 Mermaid 代码块后,才从 DSH 同源加载已打包的 Mermaid 运行时
- 多图通过串行队列逐个渲染,并在图形之间让出主线程,降低页面卡顿
- 使用 Mermaid
securityLevel: strict - 抑制 Mermaid 内置的解析错误 SVG,使渲染失败时干净地回退源码,不在页面中遗留临时错误图
- 支持全屏查看,并提供缩放、拖拽、恢复 100% 和适应窗口操作
- 全屏查看时把键盘焦点限制在对话框内、隔离背景内容,并在关闭后把焦点还给触发按钮
- 向辅助技术播报渲染与下载状态,并为生成的 SVG 图形提供可访问名称
- 可直接通过卡片按钮把已渲染图形导出为独立 SVG 文件
- 在代码和图形视图中始终提供全屏与 SVG 下载操作,并在切换时保持工具栏位置稳定
- 根据页面和浏览器语言自动使用简体中文或英文界面及状态文案
- 只增强
<pre><code>代码块,不处理行内代码 - 防止旧的异步渲染结果覆盖较新的流式内容
- 单图超过 50,000 字符或 2,000 行时,在调用 Mermaid 前拒绝渲染并回退源码
兼容性
最后验证环境为 2026-09-05 的 @deepseek-ai/dsh 0.1.2-rc.1 与 Node.js 22.23.2。DSH 当前仍处于开发预览阶段,后续版本可能包含破坏性兼容变化;如果新版 DSH 调整了插件加载器或 Markdown DOM,请提交 issue。
安装
如果已经全局安装 dsh,通过 npm 稳定版安装:
dsh plugin --profile web add -w dsh-mermaid
如果没有全局 dsh 命令,可以通过 npx 调用 DSH:
npx.cmd --yes @deepseek-ai/dsh plugin --profile web add -w dsh-mermaid
DSH 会通过 pnpm 安装包、识别其中的 dsh.bundle 声明,并自动把 dsh-mermaid 加入 web profile 的 bundles。安装完成后重启 DSH Web 或刷新页面。
安装 GitHub 最新源码版
npx.cmd -y github:MrmoLabs/dsh-mermaid install
该命令会运行仓库提供的 dsh-mermaid 安装器,再让 DSH 把 GitHub 源安装到 web profile。GitHub 源会在安装阶段构建。如果 pnpm 提示阻止了 build script,请把它输出的精确包名加入 profile 的 pnpm-workspace.yaml allowBuilds,然后重新执行命令。普通用户建议优先使用 npm 稳定版。
更新和卸载
更新 npm 稳定版:
dsh plugin --profile web update -w dsh-mermaid
卸载:
dsh plugin --profile web remove -w dsh-mermaid
更新或卸载后请重启 DSH Web。
使用方法
让模型输出 Mermaid 围栏代码块:
```mermaid
flowchart LR
A[代码] --> B[图形]
```
代码块上方会出现代码 / 图形按钮,默认显示图形。
从源码开发
需要 Node.js 22.19 或更高版本。
npm.cmd install
npm.cmd run check
npm.cmd run build
dsh plugin --profile web add -w .
构建产物位于 lib/。轻量的 client.js 启动器由 DSH 客户端模块加载器注册为 dsh-mermaid,打包后的 Mermaid 运行时则通过插件的同源宿主路由按需加载。DSH 会以当前插件项目为基准解析相对安装路径。
本地开发时,也可以手动把构建后的包复制到:
C:\Users\<用户名>\.dsh\profiles\web\node_modules\dsh-mermaid
不要把整个 .dsh 目录提交到 Git,其中可能包含会话和凭据。
发布检查
npm.cmd run check
npm.cmd run build
npm.cmd pack --dry-run
git status --short
git diff --cached
许可证
链接
同类插件
tt-a1i/archify#integrations/deepseek-harness★ 81709
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。
dream-num/dsh-univer-office★ 494
为 DeepSeek Harness 打造一个真正的办公环境。Univer Office 插件将电子表格、文档、幻灯片、画布、多维表格等汇聚到同一个运行时——数据互联、修改经过校验、变更按版本管理,并以隔离工作树支持多 Agent 协作。
PerryLink/dsh-industry-research★ 214
面向 DeepSeek Harness 的确定性行业研究报告:公司与行业研究流程基于分阶段证据产出结构化、可核验的报告。
PolinniZhong/dsh-knit★ 53
把会话工作区里已有的 Markdown 文档、图片与视频列进 DSH 侧边栏,按与当前对话的相关性排序:用最近几条消息在本地与文档标题、摘要、正文做带 IDF 权重的匹配,不调用模型,也没有网络出口。列表来自工作区扫描,而不是「最近打开记录」,所以重启 DSH 或新开会话都不会变空。图片与视频可就地预览,相对路径图片真实渲染,视频走 HTTP Range 流式播放。预览头下方的引用条显示当前这篇被哪些文档引用、又引用了哪些,点一项即可跳过去。同一份排序也作为 knit_docs 工具交给 agent:它返回最相关的若干篇,并附上每篇里命中的那段原文(有命中时才附)。
HuanLinOTO/dsh-plugin-mineru★ 46
向模型暴露 MineRU 文档解析工具。
kw78/dsh-office-tools★ 28
面向 agent 的工作区安全 Office 工具集:创建/读取 Word、创建/读取/更新 Excel、创建/读取 PowerPoint,并支持 PNG/JPG/GIF 图片排版。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。