Back to home

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'

如果你用的是 web profile,修改 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二级标题字体
latinFontTimes New Roman西文/数字字体
pageNumberFont宋体页码字体
bodySizePt / titleSizePt / pageNumberSizePt16 / 22 / 14字号(磅)
linePitchTwips580固定行距(缇)
topMarginMm / leftMarginMm / bottomMarginMm / rightMarginMm37 / 28 / 35 / 26页边距(毫米)

示例:

- insert:
    - id: tool-gbt9704
      name: 'dsh-tool-gbt9704'
      config:
        bodyFont: 仿宋
        titleFont: 宋体

已知限制

  • 仅排版公文主体部分:不含红头(发文机关标志、发文字号、红色分隔线)与版记(抄送、印发机关)。
  • docx→docx 重排会保留段落、表格与图片文本,但批注、修订、图表、文本框、逐 run 字体等复杂特性不保留。
  • 字体(仿宋_GB2312、方正小标宋简体、楷体_GB2312)依赖本机安装,缺失时 Word 打开会自动替换。

开发说明

  • src/ 为源码;lib/ 为已构建产物(lib/index.jslib/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

许可证

MIT

致谢

  • 基于 DeepSeek Harness(MIT)的 Cordis 插件机制
  • 版式依据 GB/T 9704-2012《党政机关公文格式》