Подтвердить что ты не робот

Имеет ли nodejs рабочую библиотеку или алгоритм?

Я ищу реализацию javascript diff-алгоритма или библиотеку, которая была протестирована и работает с произвольными текстовыми файлами utf8.

Все те, которые я нашел до сих пор (скажем, например, http://ejohn.org/projects/javascript-diff-algorithm/) терпят неудачу в случае с короткими

(Попробуйте использовать файл, содержащий строку '__proto__' в моей библиотеке примеров.)

4b9b3361

Ответ 1

Возможно, это поможет вам - jsdiff

Ответ 2

Существует реализация алгоритма diff, которую я написал с помощью javascript на следующей странице.

https://github.com/cubicdaiya/onp

Это выполняется с node.js. В Forthermore есть версия аддона С++ для node.js на следующей странице.

https://github.com/cubicdaiya/node-dtl

Вы можете установить это с помощью npm.

$npm install -g dtl

Ответ 3

Я поклонник патча google diff match. Вы можете попробовать пример здесь.

Существует различная опция очистки для настройки уровня общности между diff. Мне не нравится опция семантической очистки, так как я считаю ее слишком агрессивной, но эффективная очистка со значением 10 хорошо работает для меня.

Ответ 4

Существует также adiff, который является библиотекой diff/patch, написанной в Javascript.

https://github.com/dominictarr/adiff

Ответ 5

Посмотрите на библиотеку JavaScript wikEd diff. Он поддерживает Unicode и многоязычную поддержку. Он также обнаруживает и выделяет перемещения блоков и основан на словах/символах. Вы также можете использовать онлайн-версию/демонстрацию для тестирования различных настроек и просмотра внутренних структур данных. Код библиотеки полностью прокомментирован.