DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Stephen-pc /

Stephen-pc/paper-format-check

Verified

论文 / 实验报告格式体检:只读检查 docx 的字号、缩进、行距、页眉、页边距与图题编号,给出可定位的修法。零依赖,DeepSeek Harness 技能插件。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@1c058df4

paper-format-check

发布前查图,提交前查文档 —— 这是同一家族的第二件工具。

论文 / 实验报告的格式体检。给定一份 .docx 和一套格式规则,输出可定位、可执行的问题清单。

零依赖(纯 Python 标准库,不需要 python-docx)、原件只读、判定口径保守。

引擎分三层:scripts/ooxml.py 解析 docx、scripts/checks.py 判定、scripts/check.py 编排与 CLI —— 加规则不必碰 XML 解析。

$ python scripts/check.py 实验三_HBase\ shell\ 操作.docx --student-id 2411020125 --student-name 彭超

报告:实验三_HBase shell 操作.docx
预设:实验报告 非空段落:86 表格:2 图片:5
已查:header、margins、bodyRange、body、breaks、captions、headings

[F001] header
    页眉里找不到姓名 彭超(当前页眉:2411020125)
    修法:双击页眉 → 补上姓名 彭超

[F002] body · 二、实验内容 · 第 12 段「随着数据量的增长,HBase 采用…」
    字号 五号 10.5pt,要求 小四 12pt
    修法:选中该段 → 字号改为 小四 12pt

[F003] body · 二、实验内容 · 第 12 段「随着数据量的增长,HBase 采用…」
    行距约 1.00 倍,要求 1.5 倍
    修法:段落 → 行距 → 倍数,设为 1.5

结论:有 3 处必须修改(error 3 · warn 0 · info 0)

为什么需要它

格式检查这件事有三个特点:机械(全是可判定的客观参数)、高频(一学期十几份,每门课要求还不一样)、反馈滞后(自己查不出来,被打回来才知道)。

Word 的「显示格式」只能逐段看,不能批量比对;「格式刷」解决的是改不是查;学院发的格式要求是给人读的 PDF,机器不可读。

所以缺的是:把「格式要求」变成可执行规则、再拿规则批量扫全文的东西。

查什么

  • 正文字号、首行缩进、行距、中文字体
  • 页眉是否带学号与姓名
  • 页边距(逐节)
  • 图题、表题的编号连续性
  • 手动换行(Shift+Enter)与连续空段落 —— 肉眼看不出来但确实错
  • 标题各级字号与加粗

不查:内容(错别字、语句、抄袭)、自动修复、.doc。

安装

作为 DeepSeek Harness 插件:

dsh plugin --profile web add github:Stephen-pc/paper-format-check

包内 package.json 已声明 dsh.bundle、lib/ 已提交,所以不需要 allowBuilds 授权。

独立使用(只跑检查,不装插件):

git clone https://github.com/Stephen-pc/paper-format-check
cd paper-format-check
python scripts/check.py 你的报告.docx

需要 Python 3.8+,不需要安装任何第三方包。

用法

python scripts/check.py 报告.docx                        # 用「实验报告」预设
python scripts/check.py 报告.docx --preset 学位论文       # 换预设
python scripts/check.py 报告.docx --list-presets         # 看有哪些预设
python scripts/check.py 报告.docx --show-rules           # 看实际生效的规则
python scripts/check.py 报告.docx --json                 # 机器可读(永不截断)
python scripts/check.py 报告.docx --strict               # warn 也算不通过
python scripts/check.py 报告.docx --ignore margins        # 本次不查页边距

批量(助教批改):

python scripts/check.py --batch 作业目录                  # 每份一行结论 + 汇总
python scripts/check.py --batch 作业目录 --fail-list      # 只要要退的路径
python scripts/check.py --batch 作业目录 --strict --fail-list

退出码:0 通过,1 不通过,2 文件读不了(不存在 / 非 docx / 加密 / XML 损坏)。

按自己学院的要求改规则

每个学院的格式要求都不一样,所以规则外置在 references/rules.json,插件本身不带「正确答案」。

复制一份,改 presets 里的键值,用 --rules 指过去:

cp references/rules.json 我的格式.json
# 编辑 我的格式.json
python scripts/check.py 报告.docx --rules 我的格式.json --preset 我的格式

字段含义见 references/rules.md(随包分发,不用去仓库外找)。三五个字段就能覆盖 80% 的要求。

判定口径

宁可漏,不可误报。误报一次,人就不信这个工具了;漏报只是被打回来,跟不用工具的结果一样。

具体三条:读不到就不报(报 info 不报 error);不确定就降级(文档网格、固定值行距、SEQ 域、自动编号);能定位才报(每条 finding 必须指到标题路径 + 段内序号)。

还有一条硬规矩:本次真正比较过的检查项为 0 时,禁止判通过 —— 规则文件写错会让所有检查静默跳过,此时报「通过」就是在骗人。

自测

node tools/dsh-selftest.mjs

16 个合成 fixture + 2 个特殊用例,断言退出码、summary、checked 三件(不断言文案)。fixture 由 tests/make-fixtures.py 生成,样本规格是可 review 的源码。期望值见 tests/EXPECTATIONS.md。

已知限制

  • 编号连续性、章号一致、页码域、纸张尺寸尚未实现
  • 参考文献格式只做形态提示,不做判定
  • 误报率尚未用真实语料验证(设计稿 §11.3 的验收口径是 ≥20 份真实文档、precision ≥95%)

许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 1c058df47660

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout