把两段文本编码到 URL hash 内。敏感内容会在 URL 中可见。
文本永远不离开浏览器。「最近对比」仅保存在本地 localStorage。
常见问题
我的文本会上传到服务器吗?
不会。所有对比都在浏览器内通过自写的 Myers diff 算法完成。文本不会被上传、记录或传输。可选的「通过 URL 分享」开关仅在你显式开启时才会把内容编码到 URL fragment(# 后),开关关闭则立即清空。
使用什么算法?
我们手写经典的 Myers O((N+M)D) diff 算法(Eugene W. Myers,1986)— 与 Git 内部使用的是同一种算法。它能找出两段序列之间最短的编辑脚本。本项目不依赖 jsdiff、diff-match-patch 或任何其他 npm 包。
什么时候用词或字符粒度?
「行」适合代码、配置、结构化文本 — 几乎所有 Git 风格的 diff。「词」适合自然语言(合同、散文),可以看到一行内具体哪些词变化了。「字符」适合极细致的对比(如错别字检查)。当输入超过 5000 字符时,字符粒度会自动降级为词粒度,以避免变慢。
「忽略 Pattern」有什么用?
它让你跳过时间戳、版本号、自动生成注释等噪音。例如 ^Last updated:.*$ 会忽略所有以「Last updated:」开头的行。Pattern 使用 JavaScript regex 语法。
有大小限制吗?
单个文件最大 5MB(文本)。行数无上限 — 我们测试过两侧各 100,000 行。性能:1 万行 diff < 300ms,10 万行约 2s(现代笔记本)。
导出的 patch 可以用 git 应用吗?
可以。导出的 .patch 文件是 unified-diff 格式,与 git apply 或 patch 命令兼容。可以用来分享修复而不需要发整个文件。
支持哪些语言的语法高亮?
JavaScript / TypeScript、Python、Go、Rust、Java、C/C++、Ruby、PHP、SQL、Shell。会按文件扩展名或内容启发式自动检测,也可手动选择。高亮完全用 regex 自写实现(不依赖 highlight.js / Prism)。

