dsh-mermaid-renderer
English | 中文
DeepSeek Harness(dsh)网页插件:自动把聊天里的 Mermaid 代码块渲染成图表卡片。 支持 flowchart / graph / sequenceDiagram / classDiagram / stateDiagram / erDiagram / journey / gantt / pie / mindmap / timeline / C4Context / gitGraph 等 Mermaid 图型。
功能
- 聊天中的 ```mermaid 代码块自动变为渲染图(流式输出、切会话、滚动重建后都会自动补扫);
- 全局美化默认值:未自带
%%{init}%%的图自动获得更大的字号/间距、柔和连线色与中性节点底色、basis曲线(每张图自己的 init 指令仍可覆盖); - 每个图表卡片可切换「图表 / 代码」两个视图;
- 连续放大 / 缩小 / 还原(0.25x–4x,无次数限制;卡片内 Ctrl+滚轮 也可缩放,超出宽度时横向滚动);
- ⛶ 独立查看器:全屏浮层单独打开(不受聊天区重渲染影响),滚轮绕光标缩放(5%–1000%)、拖拽平移、适应宽度 / 100%、双击适应、ESC 关闭;还可「新标签页打开」成独立自包含页面,配合浏览器缩放查看全局;
- 一键「复制源码」;
- Mermaid 引擎按需加载(首个图表出现时才联网拉取),失败时保留代码视图并提示重试;
- 纯 DOM 后处理,不侵入界面框架,卸载后页面恢复原样。
安装
要求:DeepSeek Harness 0.1.0-rc.8(web profile),且已启用 pnpm。
> 前置准备(一次性):dsh plugin 底层调用 pnpm。若 pnpm --version 提示找不到命令,在管理员终端执行 corepack enable 启用(Node 自带 corepack),然后新开一个终端即可。
# 从 GitHub 安装(推荐:无需发布 npm,一条命令即可,无需手动下载压缩包)
dsh plugin --profile web add git+https://github.com/timedomain1/dsh-mermaid-renderer.git
# 或从 npm 安装(发布到 npm 后可用)
dsh plugin --profile web add dsh-mermaid-renderer
# 或从本地目录安装
dsh plugin --profile web add file:/path/to/dsh-mermaid-renderer本包无需构建步骤(bundle 已写好),git 安装开箱即用。
安装后重启 dsh web 并刷新浏览器页面。验证:在聊天中发送一个 ```mermaid 代码块,或打开历史消息中的 mermaid 代码块。
> 说明:dsh plugin 会转发给 pnpm 安装并把本包(声明了 dsh.bundle.patch)自动加入 web profile 的 bundle 层。无 pnpm 时也可手动安装:把本包目录放进 $DSH_HOME/profiles/web/node_modules/dsh-mermaid-renderer/,并把 "dsh-mermaid-renderer" 追加进 $DSH_HOME/profiles/web/package.json 的 dsh.profile.bundles 列表。
卸载
dsh plugin --profile web remove dsh-mermaid-renderer重启 dsh web。手动安装者:删除上述 node_modules 目录并移除 bundles 列表中的条目。
兼容性与依赖
- 浏览器半:无任何第三方依赖(手写
__ModuleLoader__静态 bundle,按官方dsh.client协议打包); - 宿主半:空
apply,仅用于出现在 Cordis 组合中(同官方dsh-client-ui-*插件模式); - Mermaid v11 引擎在浏览器首次渲染时从 jsDelivr / unpkg CDN 加载(需要联网)。
可自定义引擎地址:在浏览器控制台或更早加载的脚本里设置 window.__DSH_MERMAID_URL__ = 'https://你的镜像/mermaid.min.js'。 离线场景可自行把 mermaid.min.js 内联进 lib/client.js 的加载逻辑。
分享 / 发布到社区
1. 改好 package.json 里的版本号后 npm publish; 2. 注册进社区目录: - dsh.fish(插件发现/安装器,按其 README 提交条目) - awesome-dsh-plugins - awesome-deepseek-harness - Anil-matcha/awesome-dsh-plugin
工作原理
包是标准的「双面」dsh 插件:cordis.patch.yml(dsh.bundle.patch)在 profile 组合中插入一行(name 为包名),宿主的客户端模块系统(@deepseek-ai/dsh-client-modules)据此扫描 dsh.client 声明,把 lib/client.js 注入网页启动清单 window.__DSH_BOOT__,浏览器侧的 Cordis loader 实例化后调用 apply(ctx)。apply 里用 MutationObserver 监听聊天区 DOM,发现 Mermaid 代码块后懒加载引擎并渲染为 SVG。
License
MIT