一个基于C# WPF的文档对比工具,可以可视化地比较两个文档的差异。支持多种文件格式的纯文本提取。
-
左右两栏显示: 清晰的并排对比视图
-
三种高亮模式可选:
- 相同行:浅色背景,舒适不刺眼
- 修改行:浅黄色背景,精确标记不同字符
- 删除字符:红色文字 + 删除线
- 插入字符:蓝色文字 + 下划线
- 修改字符:橙色文字 + 加粗
- 整行标记为相同/不同
- 简洁清晰,快速浏览
- 传统对比工具风格
- 每个字符精确标记
- 相同字符无背景
- 不同字符高亮显示
- 标点符号过滤: 可选择忽略中英文标点符号差异
- 自动转换:
,→,、。→.、""→""等 - 适合对比中英文混排文档
- 专注于实质内容变化
- 自动转换:
- 纯文本 (.txt): 直接对比原始文本
- Markdown (.md): 自动提取纯文本,去除格式标记
- 移除标题标记 (#)
- 移除粗体、斜体、删除线标记
- 移除代码块和行内代码
- 移除链接和图片标记
- 移除表格分隔符
- 移除列表标记
- Fandom WikiText (.wiki, .wikitext): 自动提取纯文本(全面增强)
- ✅ 移除 CSS/JavaScript 代码块
{{CSS|...}},<style>,<script> - ✅ 移除所有代码标签
<syntaxhighlight>,<code>,<pre>,<nowiki> - ✅ 嵌套模板处理 (支持最多20层)
{{模板1|{{模板2|...}}}} - ✅ 移除文件/图片引用
[[File:...]],[[Image:...]] - ✅ 移除分类和跨语言链接
[[Category:...]],[[en:...]] - ✅ 完整表格移除 (支持嵌套表格)
{| ... |},<table> - ✅ 移除所有 HTML 标签及属性
<div style="...">,<span>,<font> - ✅ 处理内部/外部链接
[[页面|文本]],[http://...] - ✅ 移除格式标记
'''粗体''',''斜体'',== 标题 == - ✅ HTML实体转换
, ,<,>等 - ✅ 移除引用标签
<ref>,<references> - ✅ 移除魔术字
__TOC__,__NOTOC__等 - ✅ 智能清理多余空行和空格
- ✅ 移除 CSS/JavaScript 代码块
- 所有文件 (.): 作为纯文本处理
- 文件加载: 从文件系统加载文档,自动识别格式
- 手动输入: 直接在文本框中输入或粘贴内容
- 清除功能: 一键清除所有内容
- 即时对比: 随时重新对比当前内容
- .NET 6.0 或更高版本
- Windows 操作系统
在项目目录中运行:
dotnet restore
dotnet builddotnet run或者使用 Visual Studio 打开 ComparisonUtil.csproj 并运行。
-
加载左侧文档:
- 点击"加载左侧文档"按钮
- 在文件对话框中选择文件格式:
- 纯文本 (*.txt) - 不做任何处理
- Markdown 文件 (*.md) - 自动提取纯文本内容
- Fandom WikiText (.wiki;.wikitext) - 自动提取纯文本内容
- 所有文件 (.) - 作为纯文本处理
- 选择要对比的文件
-
加载右侧文档:
- 点击"加载右侧文档"按钮
- 同样选择合适的文件格式
- 选择第二个文件
-
开始对比:
- 点击"开始对比"按钮
- 查看带颜色高亮的对比结果
- 直接在左侧或右侧文本框中输入或粘贴内容
- 点击"开始对比"按钮
- 立即看到差异
- 清除内容: 点击"清除"按钮清空所有文本框
- 重新对比: 修改文本后可随时点击"开始对比"重新分析
- C# / .NET 6.0
- WPF (Windows Presentation Foundation): 用于构建用户界面
- DiffPlex: 用于实现高效的文本差异算法
ComparisonUtil/
├── App.xaml # WPF应用程序定义
├── App.xaml.cs # 应用程序代码隐藏
├── MainWindow.xaml # 主窗口UI定义
├── MainWindow.xaml.cs # 主窗口逻辑(文件加载、对比显示)
├── DiffHelper.cs # 文档对比核心算法
├── TextProcessor.cs # 文本格式处理器(Markdown/WikiText)
├── ComparisonUtil.csproj # 项目配置文件
├── README.md # 项目说明文档
├── Example Assets # 测试样本
├──── sample1.txt # 纯文本测试样本
├──── sample2.txt # 纯文本测试样本
├──── sample_markdown1.md # Markdown测试样本
├──── sample_markdown2.md # Markdown测试样本
├──── sample_wikitext1.wiki # WikiText测试样本
└──── sample_wikitext2.wiki # WikiText测试样本
MIT License
lhx077