如何在javascript中使用人类可读的差异突出显示来呈现文本差异
我需要打印内联差异的文本(代码)在一个人可读的格式(例如:不机器优化) 我的平台是Javascript(primary node.js,浏览器)。我有自己的打印机/样式器,但在生成正确的差异更改时遇到问题 重要的是人类的直觉变化:所以对每行的变化有强烈的偏见,而对随机的零碎字母的偏见非常低 看起来不错的非JS diff渲染器示例有Tortoise SVN/GIT中的示例和github.com上的diff渲染器。我相信github上的补丁读取的是“标准”补丁格式,但我确信要将其转换成一个非常内联的差异,还需要更多的逻辑 我尝试过的一些模块:如何在javascript中使用人类可读的差异突出显示来呈现文本差异,javascript,node.js,diff,Javascript,Node.js,Diff,我需要打印内联差异的文本(代码)在一个人可读的格式(例如:不机器优化) 我的平台是Javascript(primary node.js,浏览器)。我有自己的打印机/样式器,但在生成正确的差异更改时遇到问题 重要的是人类的直觉变化:所以对每行的变化有强烈的偏见,而对随机的零碎字母的偏见非常低 看起来不错的非JS diff渲染器示例有Tortoise SVN/GIT中的示例和github.com上的diff渲染器。我相信github上的补丁读取的是“标准”补丁格式,但我确信要将其转换成一个非常内联的
diff
()经典,但它有线条和文字或字符差异的非自然混合。(这在摩卡咖啡中使用,但有缺陷)chardiff
()基于diff
,但它有一个为人类可读性而设计的语义过滤器:它看起来更好,但仍然提供零碎的单字母更改(经典的diff不会)diff-match-patch
(),很有希望,但仍然不是100%(仍然有一些违反直觉的差异)这是一个已解决的问题吗?我知道现在已经很晚了,但我已经开发出一种方法,似乎效果很好,速度也很快。为了您将来的参考,请看