gongwen-format-skill

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

gongwen-format-skill

gongwen-format-skill 是一个面向 Claude Code、Codex等AI Agent的 Skills/自动化场景 的“确定性公文(公文格式)排版工具”:输入 受控 Markdown(含 YAML Front Matter)或 JSON,通过 python-docx 稳定生成符合常见公文排版约束的 Word .docx(字体/字号/行距/标题与层级/主送机关/附件/页码等)。

功能特性

  • 受控输入协议:不做通用 Markdown 语义推断,靠“行首标记”做确定性渲染
  • 标题与层级:#~`#####` 映射到公文标题/一二三级标题的固定字体与字号
  • 正文排版:段前段后 0、固定行距、首行缩进(2 字)等
  • 主送机关、附件说明、落款与日期(来自 Front Matter)
  • 页码:页脚居中 — 1 —(Word 字段 PAGE
  • 依赖轻:核心仅依赖 python-docx,Front Matter 解析内置实现(不强依赖 PyYAML)

安装到 Codex Skills(举例,其他AI Agent类似)

  1. 将本仓库中的 gongwen-format-skill/ 目录复制到你的 Codex Skills 目录下(例如 ~/.codex/skills/)。
  2. 确保 SKILL.md 位于 gongwen-format-skill/ 目录根部。
  3. 重启 Codex CLI(或让其重新加载 skills)。

你的环境里具体的 Skills 根目录可能不同;以你当前 Codex 配置为准。

作为脚本直接使用

依赖

  • Python 3.9+
  • python-docx

安装依赖:

pip install python-docx

生成 docx

JSON 输入:

python scripts/gongwen_doc.py --input data.json -o 输出公文.docx

受控 Markdown 输入:

python scripts/gongwen_doc.py --md input.md -o 输出公文.docx

也支持从标准输入读取(将 --md ---input -):

cat input.md | python scripts/gongwen_doc.py --md - -o 输出公文.docx

受控 Markdown(协议要点)

完整规范请阅读 references/受控 Markdown 公文解析与渲染规范(v1.0).md。核心规则简述:

  • 自然换行即自然段:每行非空文本 = 一个 Word 段落
  • 只识别行首 #:根据 # 的数量判断段落类型
  • 不做通用 Markdown:列表、加粗、表格、引用等语法不解析,尽量不要输出相关符号
  • 编号由你负责写在文本里:脚本不补全、不校验编号连续性(如“一、”“(一)”“1.”“(1)”)

Front Matter

文件开头可写 YAML Front Matter(仅支持受控子集):

---
recipients: 各相关单位
signer: XX单位
date: 2026年1月30日
attachments:
  - 年度工作总结模板
---
  • recipients:主送机关(字符串或字符串数组)
  • signer:落款单位
  • date:成文日期(不做格式解析)
  • attachments:附件列表

标题层级映射

  • # ...:公文标题(居中,小标宋,2 号)
  • ## ...:一级标题(黑体,3 号)
  • ### ...:二级标题(楷体,3 号)
  • #### ... / ##### ...:更深层级(仿宋,3 号)
  • 其他非空行:正文(仿宋,3 号,首行缩进)

示例

input.md

---
recipients: 各相关单位
signer: XX单位
date: 2026年1月30日
attachments:
  - 年度工作总结模板
---
# 关于开展年度工作总结的通知
为全面总结年度工作成果,梳理经验做法,现就有关事项通知如下。
## 一、总体要求
### (一)突出重点。
这是第一自然段。
这是第二自然段。

字体与合规提示

本项目通常会使用以下字体名进行渲染(由脚本常量控制),以满足常见公文排版习惯:

  • 方正小标宋简体(标题)
  • 仿宋_GB2312(正文)
  • 楷体_GB2312(二级标题)
  • 黑体(一级标题)

注意:

  • 字体文件可能受版权/授权约束。如你计划开源发布仓库,建议:
    • 不直接随仓库分发字体文件;或
    • 明确字体来源与授权条款,并在仓库中提供合规的获取方式。
  • 若目标机器未安装对应字体,Word 的显示效果可能会回退到其他字体。