Утилита diff на основе JavaScript [закрыто]
Я ищу diff эквивалент, написанный на JavaScript, который возвращает / печатает только соответствующие строки. Я не хочу, чтобы оба полных текста отображались рядом друг с другом с выделенными различиями, но просто хочу, чтобы фактические различия (плюс некоторые буферные строки, чтобы знать, где разница), подобно выходу из утилиты linux diff.
кто-нибудь знает функцию JavaScript, которая делает это? Все различия должны быть признаны (даже пробел). Спасибо.
10 ответов:
Я полностью перестроил утилиту 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