dsh-doc-compare:把两份文档按段落比对成人能读的报告

前言

DSH 的文档处理链路里,经常需要回答一个问题:这版文件和上一版相比,到底改了哪几处。用 Word 自带的「比较」,文件要传到别人服务器;用 git diff,输出是行号补丁,改了一句价款要自己在满屏 -/+ 里找。dsh-doc-compare 就是针对这件事做的插件。

这是什么

dsh-doc-compare(npm 包名 @deepwhale-cn/dsh-doc-compare)是一个 DSH 插件,作者为 feely0208(温州深鲸智能科技有限公司),MIT 许可证,当前版本 0.1.0。它读入两份 .docx / .md / .txt 文件,按段落做工整差异,输出「改前 → 改后」的报告,适合合同、方案文档的逐条核对。

核心功能

下面按 README 列出的能力介绍。

  1. 段落级三类差异:新增、删除、修改。修改项给出改前和改后内容,并标出改动的词句。
  2. 结构风险单独提示:标题被改名、被删除、层级从 H2 掉到 H3,会在报告中单独列出。合同场景里这类变化通常比错别字更值得先确认。
  3. 表格按行比对:报告里给出每个表格的行数变化(例如 3 → 4 行),以及具体哪一行新增、删除或修改。
  4. 两种输出:默认 Markdown 报告,可用 --out 另存;--json 输出机器可读结果。
  5. 本机完成:不联网、不上传、不调第三方接口;.docx 通过纯 JS 库 mammoth 在本进程内解析。

安装与启用

安装命令来自插件 README:

dsh plugin --profile web add @deepwhale-cn/dsh-doc-compare

安装后可用两个入口:命令行 dsh-doc-compare,以及侧栏「文档比对」面板。运行环境要求 Node >= 18、dsh >= 0.1.0-rc.6 且 < 0.3.0;唯一第三方依赖是 mammoth ^1.13.0,纯 JS、离线可用,安装体积约 1.9MB,其余为 Node 内置模块。

典型用法

命令行的三种典型调用:

# 出 Markdown 报告到终端
dsh-doc-compare 合同-旧.docx 合同-新.docx

# 另存报告 + 机器可读 JSON
dsh-doc-compare 旧.md 新.md --out 比对报告.md
dsh-doc-compare 旧.txt 新.txt --json

退出码是脚本化调用的关键,README 里给出三档:

退出码 含义
0 无差异
1 有差异
2 解析失败(文件不存在、格式不支持、docx 损坏)

需要限制比对量时用 --max-paragraphs。默认只比对前 2000 段(叙述段落,含标题),超出部分会在报告里明确提示;需要完整比对时调大该值,硬上限 5000。

面板侧的用法不同:左右各贴一段文本,本机比对后在面板里看修改/新增/删除,标题结构变化用红色风险条单独列出。文件比对不走面板,面板不读本地路径,需要比对文件时用命令行。

适用场景与注意

适合需要逐条确认文档变化的人和流程:签前核对合同、评审方案定稿、批量检查多个版本之间改了哪些条款。差别较大、体积较大的文档,先确认段落数是否落在默认 2000 段以内。

两点使用前提:插件以当前 dsh 进程权限运行,能读到什么文件取决于进程本身的权限;安装前应检查源码与许可证,本插件为 MIT 许可证。插件只读原文件,不会改写文档;只有 --out 会写报告,且写到指定路径。

相关链接

  • 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-doc-compare
  • GitHub:https://github.com/feely0208/dsh-doc-compare
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜