Утилита diff на основе JavaScript [закрыто]



Я ищу diff эквивалент, написанный на JavaScript, который возвращает / печатает только соответствующие строки. Я не хочу, чтобы оба полных текста отображались рядом друг с другом с выделенными различиями, но просто хочу, чтобы фактические различия (плюс некоторые буферные строки, чтобы знать, где разница), подобно выходу из утилиты linux diff.



кто-нибудь знает функцию JavaScript, которая делает это? Все различия должны быть признаны (даже пробел). Спасибо.

718   10  

10 ответов:

jsdifflib сравнение встроенного режима, попробуйте настроить размер контекста, чтобы отобразить только желаемое окно изменения, которое вы хотите. Существует демо-версия здесь

Я полностью перестроил утилиту jsdifflib для скорости. Поскольку моя версия не требует доступа к DOM, по крайней мере, в 4,5 раза быстрее, и она также расширена, чтобы выделить различия символов в каждой строке.

http://prettydiff.com/diffview.js

вы можете проверить это с помощью онлайн-инструмента непосредственно на http://prettydiff.com/

там же google-diff-match-patch из Google

также на NPM

npm install diff-match-patch

Я не знаю много о утилите diff в linux или linux в целом, но это может быть то, что вы ищете jsdifflib. Вы можете найти живой пример там и посмотреть, если он работает для вас.

проверить CodeMirror. Больше сказать нечего.

проверка моей минимальной реализации:https://github.com/Slava/diff.js

  • Mergely полностью стоит проверить. На основе CodeMirror, только на стороне клиента.
  • тут CodeMirror demo для чего требуется вычисление различий на стороне сервера.
  • jsdifflib и prettydiff как уже упоминалось в других ответов.

проверить wikEd diff библиотека JavaScript. Существует также онлайн-инструмент.

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

jsdifflib выглядит многообещающе-попробуйте демо-ссылку с этой страницы.

старый вопрос я знаю, но если вы делаете работу узла или хотите что-то совместимое с модулем requirejs/commonjs

Мне очень понравилось https://www.npmjs.com/package/diff

console.log(diff.createPatch('some file name.txt', expected, actual));

Comments

    Ничего не найдено.