如何在javascript中使用人类可读差异突出显示文本差异

时间:2014-01-31 00:58:37

标签: javascript node.js diff

我需要以人类可读的格式打印文本(代码)的内联差异(例如:不是机器优化的)。

我的平台是Javascript(主node.js,浏览器)。我有自己的打印机/样式器,但在生成正确的差异更改时遇到问题。

重要的是人类直观的变化:因此对每行的变化有很大的偏见,而随机碎片的变化则非常低。

看起来不错的非JS diff渲染器的示例是Tortoise SVN / GIT中的那个和github.com上的diff渲染器。我相信github上的那个读取一个“标准”补丁格式,但我确信还有一些逻辑可以将它变成一个漂亮的内联差异。

我试过的一些模块:

  1. diffhttps://npmjs.org/package/diff)经典,但它有不自然的线条和字符或字符差异组合。 (这在[{1}}中使用,但它有缺陷)

  2. mochahttps://npmjs.org/package/chardiff)基于chardiff,但它有一个专为人类可读性而设计的语义过滤器:它看起来更好但仍然提供零碎的单字母更改(经典差异不会)。

  3. diffhttp://code.google.com/p/google-diff-match-patch),这很有希望,但仍然不是100%(仍有一些反直觉的差异)。

  4. 我想我需要使用其中一个模块作为组件(每行等)来组装一些东西,但我不确定该怎么做。

    这是一个解决的问题吗?

0 个答案:

没有答案