中文标点校对
对中文文稿做一次机器可查的排版检查,把「肉眼容易漏、通读时看不出来」的低级问题标出来:
中英文之间的空格、全半角标点混用、重复标点、连续空行、行尾空白。
需要的话可以直接生成一份修复稿,标点和空白一起收拾干净。
执行原则
- 只管排版。 检查中西文空格、全半角标点、重复标点、连续空行与行尾空白;不要改措辞,也不判断内容对错。
- 修复稿另存。
--fix输出独立文件,绝不覆盖原文;不要原地改用户的稿子。 - 跳过代码块。 围栏代码块里的缩进与半角符号属于内容,一律不检查不修改;不要把代码符号「修」坏。
- 空格可关闭。 中西文空格属风格约定,公文合同等场景用
--no-cjk-space关闭;不要把风格建议说成硬性错误。 - 零问题直说。 结果为 0 就说明「未发现排版问题」;不要为凑内容编造问题。
何时使用
CRITICAL: 只要用户要在发布前检查中文排版 / 校对标点,或说「帮我看看格式有没有问题」,就必须使用本 skill,即使看起来可以用别的方式解决。
- 用户说「帮我检查排版」「校对一下」「这段文字有没有格式问题」「发布前过一遍」「顺手把标点修了」。
- 交付物是中文长文(报告、公众号、公文、论文初稿)时的最后一道检查。
- 用户要求「只挑格式问题,不改内容」时——本 skill 只看排版,
--fix也只动标点与空白。
不适用:语义、事实、逻辑、错别字层面的校对(本 skill 只看排版体例)。
何时不该使用
| ✅ 使用 | ❌ 不用(改用什么) |
|---|---|
| 查中西文空格、全半角标点、重复标点、空行 | 改错别字、语义、逻辑、事实——不在本 skill |
| 中文长文发布前最后一道排版检查 | 检查 Markdown 渲染、表格对齐、链接可达——不做 |
| 生成修复稿(另存,不改原文) | 改写措辞与文风——只动标点与空白 |
| 公文/合同场景可关掉中西文空格 | 全文润色、去 AI 味——用 ai-tone-check |
| 纯文本的排版体例检查 | 围栏代码块内部的符号——那是内容,一律跳过 |
易混淆场景
| 用户说的 | 实际意图 | 正确路由 |
|---|---|---|
| 「帮我看看这段标点」 | 要排版检查结论 | 先给问题总数,再给按规则分类的清单 |
| 「顺手把标点修了」 | 要修复稿 | --fix 另存,并说明改了什么 |
| 「只挑格式问题,别改内容」 | 只读 | 不加 --fix;--fix 也不动措辞 |
| 「代码里的符号别动」 | 担心代码块被改 | 说明围栏代码块一律跳过 |
| 「公文要不要加空格」 | 风格疑问 | 用 --no-cjk-space 关闭该条 |
用法
python3 scripts/zh_text_lint.py <文件路径> [--no-cjk-space] [--json]
python3 scripts/zh_text_lint.py <文件路径> --fix # 输出修复稿
python3 scripts/zh_text_lint.py <文件路径> --fix -o out.txt # 指定输出路径
- 支持
.md/.txt等纯文本文件,可一次传多个路径。 --no-cjk-space:关闭「中英文之间应有空格」这一条风格类建议(公文、合同等不宜加空格的场景用它)。--json:输出机器可读结果,便于二次处理。--fix:另存一份修复稿,绝不覆盖原文(默认<原名>.fixed<后缀>)。
--fix 能改什么
只做确定性替换,改完必然正确:
| 规则 | 改动 |
|---|---|
R5 行尾空白 |
删除 |
R3 重复标点 |
。。 → 。 |
R2 半角标点 |
仅当相邻字符是中文时转全角;1,000 这类数字里的逗号不动 |
R6 半角括号 |
仅在中文语境转全角((含税) → (含税)) |
R1 中西文空格 |
中文与字母/数字之间补空格(2024年 → 2024 年);--no-cjk-space 时跳过 |
R4 连续空行 |
折叠为一行 |
--fix 会跳过的:``` 与 ~~~ 围栏代码块内的全部内容(代码里的缩进与半角符号是内容的一部分);措辞、语序、用词一律不动。
修复稿输出到独立文件,改不改、要不要替换原文,由用户决定。
输出约定
- 先跑脚本拿到问题清单,原样引用其中的行号与片段,不要凭印象补写。
- 汇总成三段交付:问题总数 → 按规则分类的清单(含行号)→ 建议的修改动作。
- 只改排版,不要顺手改写用户的措辞、语序和用词。有疑问的地方标注出来让用户定。
- 若问题为 0,直接说明「未发现排版问题」,不要为了凑内容编造问题。
能力边界
- 只做单文件静态文本检查,不涉及语义理解,不判断内容对错。
- 报告模式只读;
--fix另存修复稿,不改原文,也不改措辞。 - 不检查 Markdown 语法渲染结果、不检查表格对齐、不检查图片与链接可达性。
- 不检查围栏代码块内部(那是代码内容,不是排版问题)。
- 「中英文之间是否加空格」属于风格约定而非错误,默认提示、可用
--no-cjk-space关闭。
依赖
仅需 Python 3.8+,使用标准库,无需联网、无需安装第三方包。
```