GitTOU
dsh-tool-gbt9704
DeepSeek Harness 插件:Markdown/Word 一键排版为 GB/T 9704 党政机关公文格式
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-tool-gbt9704
DeepSeek Harness 插件:把 Markdown / Word 文档一键排版为 GB/T 9704-2012《党政机关公文格式》
在 DeepSeek Harness 的对话中,对 Agent 说一句「把这个文件转成公文格式」,即可生成符合国家标准排版(A4、页边距、三号仿宋、22 行 × 28 字、层级标题、署名成文日期、页码)的 .docx 公文文档。支持从 .md 转换,也支持把现有 .docx 重排为公文格式。
功能特性
- Markdown → 公文 .docx:按写作约定自动识别标题、主送机关、四级层次标题、署名与成文日期
- Word → 公文 .docx:重排现有文档的段落、表格与图片(不覆盖原文件)
- 严格落实 GB/T 9704-2012 主体版式,全部排版参数可在配置中调整
- 零重型依赖:docx 由内置 OOXML 生成器构建(
fflate),Markdown 解析使用成熟的mdast生态
落实的版式(GB/T 9704-2012 主体规则)
| 要素 | 规则 |
|---|---|
| 纸张 | A4,210 mm × 297 mm |
| 页边距 | 天头 37、订口 28、地脚 35、翻口 26 mm → 版心 156 mm × 225 mm |
| 正文 | 三号仿宋_GB2312(16 pt),两端对齐,首行缩进二字 |
| 网格 | 每面 22 行、每行 28 字,固定 29 pt(580 twips)行距 |
| 标题 | 二号小标宋(22 pt),居中,后空二行 |
| 层次标题 | 一、黑体 / (一)楷体_GB2312 / 1. 与 (1)仿宋,首行缩进 |
| 主送机关 | 顶格,全角冒号结尾,与正文间空一行 |
| 署名/成文日期 | 右对齐;日期首字比署名首字右移二字 |
| 页码 | 四号宋体"—1—",单页码右空一字、双页码左空一字 |
环境要求
- 已安装 DeepSeek Harness(本插件是 DSH 的 Cordis 插件,运行在 DSH 环境中)
- Node.js(DSH 自带运行环境)
安装(在 DeepSeek Harness 中)
在 DSH 的终端里执行(把 <仓库路径> 换成你 clone 到本地的路径,或使用下方方式二):
方式一:克隆到本地后 link 安装(最稳)
# 1. 把本仓库克隆到本地
git clone https://github.com/<你的用户名>/dsh-tool-gbt9704.git
# 2. 安装到你的 DSH profile(把路径换成 clone 位置)
dsh plugin --profile web add "link:C:/Users/<你的用户名>/dsh-tool-gbt9704"
方式二:直接从 GitHub 安装
dsh plugin --profile web add "git+https://github.com/<你的用户名>/dsh-tool-gbt9704.git"
3. 注册插件
编辑 DSH profile 的 cordis.patch.yml(位于 C:\Users\你的用户名\.dsh\profiles\web\cordis.patch.yml),加入:
- insert:
- id: tool-gbt9704
name: 'dsh-tool-gbt9704'
如果你用的是
webprofile,修改cordis.patch.yml后无需重启,DSH 会热加载新插件。之后新开一个会话即可使用(工具清单在会话开始时确定)。
使用
新会话中对 Agent 说:
- 「把
C:\work\通知.md转成公文格式」 - 「把这份 Word 文档
报告.docx按 GB/T 9704 公文格式重新排版」 - 「帮我写一份关于开展安全生产检查的通知」— 配合本仓库附带的公文写作技能,Agent 会自动按规范起草并排版(见下文「配套技能」)
输出文件规则:.md 默认生成同名 .docx;.docx 默认生成 <名>.gbt9704.docx(不覆盖原文件)。可通过 output 参数指定输出路径。
配套技能(可选,强烈推荐)
本仓库附带 official-document-writing 技能:指导 Agent 起草公文时的文种选择、结构、层次序号、用语规范,并自动调用 gbt9704_convert 排版、按检查清单自查。安装后你说「帮我写一份关于开展安全生产检查的通知」,Agent 就能端到端完成起草 + 排版。
安装:把 skills/official-document-writing/SKILL.md 复制到你的 DSH 技能目录:
mkdir -p ~/.dsh/skills/official-document-writing
cp skills/official-document-writing/SKILL.md ~/.dsh/skills/official-document-writing/SKILL.md
(Windows 下 ~ 即 C:\Users\<你的用户名>。技能目录有文件监听,复制后立即生效,新会话可用。)
Markdown 写作约定
# 关于开展2024年度网络安全检查工作的通知 ← 第一个标题 = 公文标题
各市、县(区)人民政府,省直各单位: ← 全角冒号结尾的短段 = 主送机关
为深入贯彻落实……现将有关事项通知如下。 ← 正文段落(自动首行缩进二字)
一、总体要求 ← "一、"开头 = 一级标题(黑体)
(一)提高思想认识 ← "(一)"开头 = 二级标题(楷体)
1.严格检查标准 ← "1."开头 = 三级标题(仿宋)
(1)全面自查阶段 ← "(1)"开头 = 四级标题(仿宋)
附件:1.×××× ← 可选附件说明
××省人民政府办公厅 ← 最后两段 = 发文机关署名
2024年5月20日 ← 成文日期(两行间可不留空行)
支持 GFM 表格、**加粗**、*斜体*、PNG/JPEG 图片;署名与日期之间不写空行也能识别。
配置(可选)
插件提供 Config 字段,均带标准默认值,可在 cordis.patch.yml 中覆盖字体、字号、页边距与行距:
| 键 | 默认值 | 含义 |
|---|---|---|
bodyFont | 仿宋_GB2312 | 正文/主送机关/三、四级标题字体 |
titleFont | 方正小标宋简体 | 标题字体 |
heading1Font | 黑体 | 一级标题字体 |
heading2Font | 楷体_GB2312 | 二级标题字体 |
latinFont | Times New Roman | 西文/数字字体 |
pageNumberFont | 宋体 | 页码字体 |
bodySizePt / titleSizePt / pageNumberSizePt | 16 / 22 / 14 | 字号(磅) |
linePitchTwips | 580 | 固定行距(缇) |
topMarginMm / leftMarginMm / bottomMarginMm / rightMarginMm | 37 / 28 / 35 / 26 | 页边距(毫米) |
示例:
- insert:
- id: tool-gbt9704
name: 'dsh-tool-gbt9704'
config:
bodyFont: 仿宋
titleFont: 宋体
已知限制
- 仅排版公文主体部分:不含红头(发文机关标志、发文字号、红色分隔线)与版记(抄送、印发机关)。
- docx→docx 重排会保留段落、表格与图片文本,但批注、修订、图表、文本框、逐 run 字体等复杂特性不保留。
- 字体(仿宋_GB2312、方正小标宋简体、楷体_GB2312)依赖本机安装,缺失时 Word 打开会自动替换。
开发说明
src/为源码;lib/为已构建产物(lib/index.js与lib/invariant.js),仓库提交产物以保证 clone 即用。- 修改源码后重建:本插件在 DeepSeek Harness 仓库内开发(
packages/document/tool-gbt9704),建议在 DSH 环境内执行pnpm run build重新生成lib/。 tests/为单元测试(含 Loader 组合测试),在 DSH 环境内运行pnpm exec vitest run packages/document/tool-gbt9704。
许可证
致谢
- 基于 DeepSeek Harness(MIT)的 Cordis 插件机制
- 版式依据 GB/T 9704-2012《党政机关公文格式》