Feature/rule engine#97
Merged
Merged
Conversation
新增 FormatNode.RULES + _run_rules() 机制,开发者只需注册 handler 并专注 逻辑判断,是否生效由 YAML 配置的 enabled 字段控制。KeywordsCN/KeywordsEN 的 关键词数量和末尾标点校验、CaptionFigure/CaptionTable 的题注编号校验已接入。 - 新增 BaseRuleConfig 基类、KeywordCountRule、TrailingPunctRule、 CaptionRulesConfig、KeywordsRulesConfig 等规则模型 - FormatNode 新增 RULES 字典和 _run_rules(doc, p) 自动调度方法 - _show_config() 改为从 Pydantic 模型递归生成,新增字段自动反映 - wordf config -o 导出 YAML 自动包含深层 rules 配置 - SKILL.md 新增纯文本替换流程,避免 AI 误将文本替换执行成格式化 - 同步更新 docs/、config_spec.md、validate_config.py 的字段白名单
- 新增 RULES + DEFAULT_RULES 机制,段落/字符样式由框架自动调度 - 批注统一格式:位置-问题类型:现状,规范:标准 - 批注缓冲合并:同段落多问题合并为一条,字符级锚在具体 run - 样式继承回退:缩进、行距、段间距从样式链递归读取 - 半角标点检测:中文上下文中的半角标点提示改为全角 - 提醒级批注蓝色字体 - 新增图片段落识别 figure_image、表格对象 table_object - 配置从 Pydantic 模型自动生成,测试与示例文件解耦 - 检测报告摘要(仅 check 模式):错误统计 + 字数问题 + 分级 - 引用上标限制第一章,检查模式不修改文档
- font_name_cn 仅当 run 含中文字符时才检查,避免引号/英文被误报 - Keywords 标签识别用全文位置匹配,防Keywords被拆成多run导致误判 - 半角标点补全引号/感叹号/问号,段首标点匹配 - 双向验证日志降为 debug,不再刷屏
- 关键词字段迁移至 rules 结构(keyword_count / trailing_punctuation) - 新增 template_name 字段 - 新增 figures.image / tables.object 段落格式配置 - 新增 figures.rules / tables.rules 编号检查开关 - 新增 body_text.rules.punctuation 标点检查开关 - style_checks_warning 默认启用主要检查项
- API: GET /configs 列出可用配置,GET /configs/{name} 读取,POST /configs/save 保存
- UI: 配置生成器左侧新增配置模板侧边栏,点击快速切换模板
- 新增保存到服务器按钮,可将当前配置写入 configs/ 目录
- 默认附带 undergrad_thesis.yaml 示例配置
- 找到第一个含摘要/Abstract的段落,之前内容全部归为 other - other 在 VOIDNODELIST 中,不参与格式检查 - other 子节点一并跳过遍历
AfishInLake
added a commit
that referenced
this pull request
Jun 23, 2026
* feat: 声明式规则引擎 — 业务校验由配置驱动、框架自动调度
新增 FormatNode.RULES + _run_rules() 机制,开发者只需注册 handler 并专注
逻辑判断,是否生效由 YAML 配置的 enabled 字段控制。KeywordsCN/KeywordsEN 的
关键词数量和末尾标点校验、CaptionFigure/CaptionTable 的题注编号校验已接入。
- 新增 BaseRuleConfig 基类、KeywordCountRule、TrailingPunctRule、
CaptionRulesConfig、KeywordsRulesConfig 等规则模型
- FormatNode 新增 RULES 字典和 _run_rules(doc, p) 自动调度方法
- _show_config() 改为从 Pydantic 模型递归生成,新增字段自动反映
- wordf config -o 导出 YAML 自动包含深层 rules 配置
- SKILL.md 新增纯文本替换流程,避免 AI 误将文本替换执行成格式化
- 同步更新 docs/、config_spec.md、validate_config.py 的字段白名单
* chore: bump version to 1.4.0
* feat: 声明式规则引擎、批注格式标准化、样式继承修复、标点检测
- 新增 RULES + DEFAULT_RULES 机制,段落/字符样式由框架自动调度
- 批注统一格式:位置-问题类型:现状,规范:标准
- 批注缓冲合并:同段落多问题合并为一条,字符级锚在具体 run
- 样式继承回退:缩进、行距、段间距从样式链递归读取
- 半角标点检测:中文上下文中的半角标点提示改为全角
- 提醒级批注蓝色字体
- 新增图片段落识别 figure_image、表格对象 table_object
- 配置从 Pydantic 模型自动生成,测试与示例文件解耦
- 检测报告摘要(仅 check 模式):错误统计 + 字数问题 + 分级
- 引用上标限制第一章,检查模式不修改文档
* fix: 中文字体检查仅含CJK字符的run、标签识别防拆分、半角标点补全
- font_name_cn 仅当 run 含中文字符时才检查,避免引号/英文被误报
- Keywords 标签识别用全文位置匹配,防Keywords被拆成多run导致误判
- 半角标点补全引号/感叹号/问号,段首标点匹配
- 双向验证日志降为 debug,不再刷屏
* fix: WordFormatUI 配置页面同步后端版本更新
- 关键词字段迁移至 rules 结构(keyword_count / trailing_punctuation)
- 新增 template_name 字段
- 新增 figures.image / tables.object 段落格式配置
- 新增 figures.rules / tables.rules 编号检查开关
- 新增 body_text.rules.punctuation 标点检查开关
- style_checks_warning 默认启用主要检查项
* feat: 新增配置模板列表侧边栏 + 服务器配置管理 API
- API: GET /configs 列出可用配置,GET /configs/{name} 读取,POST /configs/save 保存
- UI: 配置生成器左侧新增配置模板侧边栏,点击快速切换模板
- 新增保存到服务器按钮,可将当前配置写入 configs/ 目录
- 默认附带 undergrad_thesis.yaml 示例配置
* fix: 移除 Google Fonts 依赖,改用系统字体避免加载卡顿
* build: 更新前端构建产物(移除 Google Fonts、新增配置侧边栏)
* fix: 摘要前所有段落标记为 other,跳过封面/声明页检查
- 找到第一个含摘要/Abstract的段落,之前内容全部归为 other
- other 在 VOIDNODELIST 中,不参与格式检查
- other 子节点一并跳过遍历
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌 关联 Issue
🎯 变更概述
受影响的用户场景
具体变更点
迁移建议
是否提供自动迁移工具?
scripts/migrate_v02_to_v03.py)✅ 提交前自查清单
🔹 测试保障
make test(或等效命令)tests/目录)io.BytesIO,未保存任何临时.docx文件到磁盘🔹 配置与兼容性
example/中提供示例requirements.txt或pyproject.toml已更新)🔹 文档与示例
README.md已更新(如新增功能说明、命令参数)example/)能正常运行且反映最新能力python-docx底层操作的部分)🔹 安全与资源
pickle、yaml.load未指定Loader)🔹 其他
master切出,无无关提交feat: add table caption check)