Mermaid 图表渲染 timedomain1/dsh-mermaid-renderer
DeepSeek 客户端DeepSeek Harnessdsh聊天界面插件:自动把聊天里的 Mermaid 代码块渲染成图表卡片。
29/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/timedomain1/dsh-mermaid-renderer.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 23 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
写入剪贴板(不计风险)
查看扫描证据(共 1 处,展示前 1 条)
- 写入剪贴板lib/client.src.js:525
navigator.clipboard.writeText(lastText).then(() => {
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 渲染Mermaid代码块
- 图表可缩放
- 全屏查看图表
在 DeepSeek Harness 网页聊天里渲染 Mermaid 图表——可重复缩放、全屏查看、默认美化。
README
由 DeepSeek 最新模型翻译生成dsh-mermaid-renderer
DeepSeek Harness(dsh)聊天界面插件:自动把聊天里的 Mermaid 代码块渲染成图表卡片。
支持 flowchart / graph / sequenceDiagram / classDiagram / stateDiagram / erDiagram / journey / gantt / pie / mindmap / timeline / C4Context / gitGraph 等 Mermaid 图型。
同时适用于命令行网页端与官方桌面端——桌面端内置的就是同一套聊天界面,两者共用同一份插件代码。
功能
- 聊天中的 - 全局美化默认值:未自带 %%{init}%% 的图自动获得更大的字号/间距、柔和连线色与中性节点底色、basis 曲线(每张图自己的 init 指令仍可覆盖);
- 每个图表卡片可切换「图表 / 代码」两个视图;
- 连续放大 / 缩小 / 还原(0.25x–4x,无次数限制;卡片内 Ctrl+滚轮 也可缩放,超出宽度时横向滚动);
- ⛶ 独立查看器:全屏浮层单独打开(不受聊天区重渲染影响),滚轮绕光标缩放(5%–1000%)、拖拽平移、适应宽度 / 100%、双击适应、ESC 关闭;还可「新标签页打开」成独立自包含页面,配合浏览器缩放查看全局;
- 一键「复制源码」;
展开完整文档(README 剩余 1 节)
dsh-mermaid-renderer
DeepSeek Harness(dsh)聊天界面插件:自动把聊天里的 Mermaid 代码块渲染成图表卡片。
支持 flowchart / graph / sequenceDiagram / classDiagram / stateDiagram / erDiagram / journey / gantt / pie / mindmap / timeline / C4Context / gitGraph 等 Mermaid 图型。
同时适用于命令行网页端与官方桌面端——桌面端内置的就是同一套聊天界面,两者共用同一份插件代码。
功能
- 聊天中的 - 全局美化默认值:未自带 %%{init}%% 的图自动获得更大的字号/间距、柔和连线色与中性节点底色、basis 曲线(每张图自己的 init 指令仍可覆盖);
- 每个图表卡片可切换「图表 / 代码」两个视图;
- 连续放大 / 缩小 / 还原(0.25x–4x,无次数限制;卡片内 Ctrl+滚轮 也可缩放,超出宽度时横向滚动);
- ⛶ 独立查看器:全屏浮层单独打开(不受聊天区重渲染影响),滚轮绕光标缩放(5%–1000%)、拖拽平移、适应宽度 / 100%、双击适应、ESC 关闭;还可「新标签页打开」成独立自包含页面,配合浏览器缩放查看全局;
- 一键「复制源码」;
- Mermaid 引擎按需加载(首个图表出现时才拉取),且离线可用;
- 纯 DOM 后处理,不侵入界面框架,卸载后页面恢复原样(样式、定时器、监听均由 ctx.effect 托管回收)。
兼容性
同一份代码同时支持命令行网页端与官方桌面端——两个宿主在客户端插件契约上完全一致(已实测比对 dsh-client-modules / dsh-client-ui-conversation / dsh-cordis-client-runner)。
| 宿主 | 版本(实测通过) | profile 名 |
| 命令行 dsh web | 0.1.5-rc.1 | web |
| 官方桌面端(最新版) | 0.2.0-rc.2 | desktop |
两端是两份独立的安装记录(读不同的 profile),所以要让两边都生效就得装两次——代码只有一份。
⚠️ 改源码后的生效方式两端不同:桌面端是链接到源码,重启即生效;网页端是拷贝,必须卸载后重装才会更新(add --force 无效)。
安装
要求:DeepSeek Harness >=0.1.5-rc.1(已适配最新桌面端 0.2.0-rc.2),且已启用 pnpm。
前置准备(一次性):dsh plugin 底层调用 pnpm。若 pnpm --version 提示找不到命令,在管理员终端执行 corepack enable 启用(Node 自带 corepack),然后新开一个终端即可。
命令行网页端(profile 名 web)
bash
从 GitHub 安装(推荐:无需发布 npm)
dsh plugin --profile web add git+https://github.com/timedomain1/dsh-mermaid-renderer.git
或从本地目录安装(适合二次开发)
dsh plugin --profile web add file:/path/to/dsh-mermaid-renderer
官方桌面端(profile 名 desktop)
桌面端内置 Node/pnpm,不必装命令行环境。在应用内打开「插件」页 → 添加插件,填入以下任一形式:
https://github.com/timedomain1/dsh-mermaid-renderer # Git 仓库地址(推荐) D:\DeepSeekHarness\plugins\dsh-mermaid-renderer # 本机插件目录(须为绝对路径)
桌面端插件管理器接受四类来源:npm 包名、Git 仓库地址、tarball 链接(.tgz)、本机绝对路径。
相对路径会被拒绝,本地安装必须写完整绝对路径。
注:desktop profile 由桌面应用独占管理,命令行 dsh plugin --profile desktop 会被拒绝(profile "desktop" is managed exclusively by the Electron application),请在应用内操作。
版本与下载
最新版本见 Releases,每个版本带完整变更说明与宿主兼容性表。
装完的验证
重启对应宿主(命令行重启 dsh web;桌面端完全退出后重开),然后发送一个 mermaid 代码块,或打开历史消息中的 mermaid 代码块。两端各自独立生效,装了一边不影响另一边。
打开开发者控制台可看到启用日志(桌面端按 F12 或 Ctrl+Shift+I;浏览器按 F12):
[dsh-mermaid-renderer] v1.3.0 已启用:聊天中的 Mermaid 代码块将自动渲染
说明:dsh plugin 会转发给 pnpm 安装并把本包(声明了 dsh.bundle.patch)自动加入对应 profile 的 bundle 层。无 pnpm 时也可手动安装:把本包目录放进 $DSH_HOME/profiles/<profile>/node_modules/dsh-mermaid-renderer/,并把 "dsh-mermaid-renderer" 追加进该 profile package.json 的 dsh.profile.bundles 列表。
桌面端 profile 由应用独占管理,命令行 dsh plugin --profile desktop 会被拒绝(profile "desktop" is managed exclusively by the Electron application),请在应用内「插件」页操作。
卸载
dsh plugin --profile web remove dsh-mermaid-renderer # 命令行网页端
桌面端:在「插件」页里移除 dsh-mermaid-renderer。手动安装者:删除对应 profile 的 node_modules/dsh-mermaid-renderer/ 目录,并移除该 profile package.json 中 bundles 列表里的条目。
重启对应宿主后生效。
兼容性与依赖
- 浏览器半:运行时不依赖任何第三方包(手写 __ModuleLoader__ 静态 bundle,按官方 dsh.client 协议打包);内联的 Mermaid 引擎已随文件分发,不需要联网;
- 宿主半:空 apply,仅用于出现在 Cordis 组合中(同官方 dsh-client-ui-* 插件模式);
- 清单声明 dsh.client.immediately 与 inject: ["@deepseek-ai/dsh-client-ui-conversation"],让插件在会话界面就绪后再激活(与官方 templates/decoration 一致;两个宿主均支持这两个字段);
- Mermaid 引擎加载顺序(首个图表出现时才拉取,结果缓存):
1. window.__DSH_MERMAID_URL__(自定义镜像,可在控制台设置)
2. jsDelivr → unpkg(联网,8 秒超时,失败自动换下一个)
3. 内联引擎(随 client.js 分发,离线兜底)
- lib/client.js 是生成物(约 3.43 MB,含内联引擎)。改代码请改 lib/client.src.js,然后运行 node scripts/build-client.mjs。校验生成物是否最新: node scripts/build-client.mjs --check;验证引擎可用:node scripts/test-inline-engine.mjs。
这 3.43 MB 会不会反复下载?
不会。宿主对插件 bundle 设了 cache-control: public, max-age=31536000, immutable,且 URL 带内容指纹—— 不升级插件就不会重新传输;只有升级插件、清空缓存或更换浏览器时才下载一次。
桌面端(Junction 链接到本机源码)更是直接读本机磁盘,不经过网络。
注:插件的 bundle 位于启动清单的 application 预加载批次,与 dsh.client.immediately 无关——后者决定"何时执行",不是"何时下载"。详见 CHANGELOG.md 的对应小节与设计权衡记录。
分享 / 发布到社区
发布以 GitHub 为主(main 分支 + 版本 tag + Release)。仓库内附有一键发布脚本, Release 说明直接取自 CHANGELOG.md 对应小节,因此两者不会脱节:
1. 发版前:改 package.json 版本号 + 更新 CHANGELOG.md(含兼容性对照表)
2. 提交并打 tag
git add -A && git commit -m "feat: ..." && git tag vX.Y.Z && git push origin main --tags
3. 发布 Release(先 --dry-run 看一眼)
node scripts/publish-github-release.mjs vX.Y.Z --dry-run
node scripts/publish-github-release.mjs vX.Y.Z
脚本从 git remote get-url origin 自动识别仓库(在 fork 里也能直接用),令牌取自 git 凭据助手,不会打印。
其它可选动作:
1. 升级引擎:node scripts/vendor-mermaid.mjs 重新下载 .vendor/mermaid.min.js → node scripts/build-client.mjs 重建 → node scripts/test-inline-engine.mjs 验证;
2. 如需 tarball 供桌面端插件管理器按 URL 安装,把 npm pack 产物作为 Release 附件上传;
3. 注册进社区目录:
- dsh.fish(插件发现/安装器,按其 README 提交条目)
- awesome-dsh-plugins
- awesome-deepseek-harness
- Anil-matcha/awesome-dsh-plugin
可选:npm publish 后即可用包名安装(dsh plugin add dsh-mermaid-renderer)。当前未发布。
工作原理
包是标准的「双面」dsh 插件:cordis.patch.yml(dsh.bundle.patch)在 profile 组合中插入一行(name 为包名),宿主的客户端模块系统(@deepseek-ai/dsh-client-modules)据此扫描 dsh.client 声明,把 lib/client.js 注入网页启动清单,浏览器侧的 Cordis loader 实例化后调用 apply(ctx)。apply 里用 MutationObserver 监听聊天区 DOM,发现 Mermaid 代码块后懒加载引擎并渲染为 SVG。
样式、定时器与 DOM 监听统一登记在 apply 的 ctx.effect 内,插件卸载时一并回收,页面不留残余。
为什么是 DOM 后处理而不是官方槽位:官方目前没有为代码块内容提供扩展点(全部槽位均不能接管 markdown 代码渲染,renderer 包也未暴露 markdown/remark 扩展)。官方文档推荐的 conversation.chat.node 槽用于新增消息行,无法改写既有代码块,因此本插件采用 DOM 后处理。详见 CHANGELOG.md 的已知偏差一节。
仓库结构
lib/client.src.js 手写模板(改代码改这里) lib/client.js 生成物,含内联引擎(勿手改) lib/index.js 宿主半(空 apply) .vendor/mermaid.min.js 内联用的引擎(已提交,构建可离线复现) scripts/build-client.mjs 构建:模板 + 引擎 → lib/client.js scripts/test-inline-engine.mjs 验证内联引擎可用 scripts/publish-github-release.mjs 一键发布 Release(说明取自 CHANGELOG) cordis.patch.yml bundle 补丁 CHANGELOG.md 版本与宿主兼容性对照表
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
timedomain1/dsh-mermaid-renderer
DeepSeek Harnessdsh聊天界面插件:自动把聊天里的 Mermaid 代码块渲染成图表卡片。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1