前言¶
在 DeepSeek Harness(DSH)里让模型画流程图,常见做法是输出 Mermaid 源码或通用 SVG。若交付物要符合中国流程图图形符号国家标准 GB/T 1526-1989(与 ISO 5807:1985 等同),还要自己对照符号表改形状、正交走线和分支习惯,工作量大且容易漏细节。
下面介绍社区插件 dsh-plugin-mermaid-gb-svg(维护者 sandyyst):在 Harness 中注册一个工具,把 Mermaid 流程图直接生成为符合 GB/T 1526-1989 的 SVG,并可选按 A4/A3 等幅面自动分页。
这是什么¶
dsh-plugin-mermaid-gb-svg 是发布在 npm 上的 DSH 插件(当前 package 版本 0.1.4,MIT 许可证)。它向模型暴露工具 mermaid_to_gb_svg,输入 Mermaid 流程图(字符串或文件),输出国标符号、正交箭头连线的 SVG 文件。
插件在 SkillHub 目录中归类为「联网工具」;源码与说明见 GitHub 仓库,目录页:skillhub.cn/plugins/sandyyst/dsh-plugin-mermaid-gb-svg。DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
符号与 Mermaid 语法映射¶
插件按 GB/T 1526-1989 绘制起止、处理、判断、数据、准备、预定义处理、直接存取存储、人工输入/操作、文档、连接符、换页连接符等符号。常见 Mermaid 节点写法与国标含义的对应关系如下(节选):
| 含义 | Mermaid 示例 |
|---|---|
| 起止(圆角矩形) | A([x])、A((x))、A(x) |
| 处理(矩形) | A[x] |
| 判断(菱形) | A{x} |
| 数据(平行四边形) | A[/x/]、A[\x\] |
| 准备(六边形) | A{{x}} |
| 预定义处理(双边矩形) | A[[x]] |
| 换页连接符(五边形) | A@{ shape: off-page, label: "B" } |
扩展形状可通过 A@{ shape: ..., label: "..." } 指定;shape 支持 Mermaid v11 英文名,也支持中文名(如 处理、起止、判断、换页连接符等)。仓库 examples/ 目录下有可对照的 .mmd 与生成 SVG。
绘图约定¶
- 流向为自左向右或自上而下;流程线为直角折线,箭头为实心。
- 判断节点:「是」从底边顶点向下,「否」从右侧顶点先向右再转折。
- 入线从符号顶部中心垂直接入。
- 每条流程线最多 3 个拐点;路由按 0→1→2→3 拐点依次尝试,优先选用不穿过符号的方案。
- 生成后会做几何自检(重叠、线穿符号等),结果写入工具返回的
warnings。
分页(可选)¶
默认 paper: none 输出一整张 SVG。设为 a4、a4l、a3、a3l 或 auto 时,若图幅超出纸张,会在层与层、列与列之间的空隙切分,不切断符号;每页 SVG 使用真实毫米尺寸(如 A4 为 210mm × 297mm),带图框、装订边和 (page n/N) 标注;跨页流程线用换页连接符(五边形)在相邻页同一位置、同一标签衔接。
沙箱与写入¶
文件写入走 Harness 的 ctx.fs 接口,受会话沙箱策略约束;与内置 write 工具一样,可通过一次性 sandbox_permissions 与 justification 申请提升后重试。
安装与启用¶
插件要求 Node.js >= 20。安装到某个 profile(README 以 web 为例):
dsh plugin --profile web add dsh-plugin-mermaid-gb-svg
安装后需让 loader 加载插件:在 $DSH_HOME/profiles/web/cordis.patch.yml 中追加类似片段:
- insert:
- id: mermaid-gb-svg
name: dsh-plugin-mermaid-gb-svg
# config:
# fontSize: 14
# paper: none
本地开发可将包路径改为源码目录,例如:
dsh plugin --profile web add /path/to/dsh-plugin-mermaid-gb-svg
插件级配置项(可在 patch 的 config 中设置):
| 键 | 默认值 | 含义 |
|---|---|---|
font |
SimSun, '宋体', 'Microsoft YaHei', sans-serif |
字体族 |
fontSize |
14 |
正文字号(px) |
stroke |
1.6 |
线宽 |
paper |
none |
默认纸张模式 |
工具 mermaid_to_gb_svg 用法¶
模型或脚本通过该工具调用转换逻辑。主要参数如下:
| 参数 | 类型 | 说明 |
|---|---|---|
out |
string,必填 | 输出路径;以 .svg 结尾时为文件名(多图时加 -1/-2),否则为目录或前缀 |
source |
string | Mermaid 源码(与 path 二选一) |
path |
string | .mmd/.mermaid 文件,或含 ```mermaid 代码块的 .md(会提取全部块;块上方最近标题作图题) |
title |
string | 图题 |
dir |
td|lr|bt|rl |
强制流向 |
paper |
none|auto|a4|a4l|a3|a3l |
纸张与分页 |
font_size |
integer | 正文字号(px,14 约等于 10.5pt) |
font_tu |
boolean | 使用 GB/T 14691 仿宋等技术制图字体 |
caption |
boolean | 是否绘制图题(默认 true) |
返回字段包括 files、diagrams、pages、summary、warnings,便于核对输出文件与几何告警。
典型调用思路:在对话中让模型根据业务描述写出 Mermaid,再调用 mermaid_to_gb_svg,传入 source 或 path 以及 out;需要打印幅面时设置 paper: a4 或 a3。
适用场景与注意¶
适合谁: 需要在 DSH 智能体工作流里直接产出国标流程图 SVG 的开发者;文档、设计说明、合规审查要求 GB/T 1526 符号与走线习惯的场景;图面较大、希望自动 A4/A3 分页并带换页连接符的场景。
使用前请注意:
- 插件在当前 dsh 进程权限下运行,会向沙箱允许的路径写入 SVG。安装前应阅读源码与 MIT 许可证,确认来源与行为符合你的安全策略。
- 国标细节仍可能有偏差;维护者欢迎通过 Issues 提交符号修正(可使用专用模板并引用标准条款/图号),并附上 Mermaid 源码、
warnings与插件版本。 - 若工具返回几何类
warnings,输出中通常会带有 issue 跟踪链接,此时反馈对修正最有帮助。
结尾¶
dsh-plugin-mermaid-gb-svg 把「Mermaid 写图」和「GB/T 1526-1989 SVG 交付」收成 Harness 内一步,并支持正交走线、判断分支约定与可选分页。进一步说明与示例图见 GitHub README,目录入口:SkillHub 插件页。