Revision Diff Viewer(回改对照生成)
Overview
对比旧版/新版文本,输出一个自包含的 HTML 对照文件:红色加粗 = 新增/修改的文字,灰色划线 = 被删去的文字,黑色 = 未改动。用 present_files 打开预览,用户可逐字查看每处改动。
使用流程
- 确认旧版与新版文件路径。旧版通常来自备份目录(如
版本备份/),新版来自当前工作稿。 - 运行脚本
scripts/diff_to_html.py生成对照 HTML:
bash
python scripts/diff_to_html.py <旧文件> <新文件> -o <输出.html> [--title "标题"]
- 支持多个文件对(两两成对),适合批量对比多章:
bash python scripts/diff_to_html.py 旧1 新1 旧2 新2 -o 对照.html --title "卷二回改对照" - 每个文件对渲染为一个
<h2>章节,标题默认取新文件文件名(去扩展名)。 - 文件数量必须是偶数,否则报错。
3. 用present_files展示生成的 HTML(会自动打开预览面板)。
4. 在回复中附上每对改动的要点摘要(用加粗列出主要改动点),HTML 负责逐字细节。
脚本说明
scripts/diff_to_html.py:Python 标准库实现(difflib/html/argparse),无第三方依赖。- 对齐策略:先按空行切分为"段落"做段落级对齐(保证改动段落与上下文不错位),再对每个 changed 段落做字符级 diff(只标实际变化的字,避免整段标红)。
- 段落内标色规则:
- 相同字符 → 黑色
- 新增/修改字符 →
<b style="color:#d23c1f;">红色加粗 - 被删字符 →
<s style="color:#bbb;">灰色划线 - 输出 HTML 自包含(内联 CSS),暖色浅底配色,可直接预览或存档。
注意事项
- 旧版文件找不到时脚本会报错并退出;对比前先确认文件存在。
- 文本需为 UTF-8 编码。
- 若旧版与新版结构差异过大(如整章重写),段落级 replace 会按顺序逐段配对,多余段标记为删除/新增——这是预期行为。
- 输出目录不存在时会自动创建。
- 生成后必须用
present_files展示给用户,不要只写文件不展示。