Поиск веб-компонента diff

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

В GoogleDocs есть функция "Сравнить ревизии", которая подчеркивает различия между двумя документами.

Если там есть свободный компонент, который делает то же самое?

Если нет, напишите ли вы такой компонент в JavaScript или на стороне сервера?

Все обычные средства сравнения - это настольные приложения.

Ответы

Ответ 1

Джон Ресиг написал один в JavaScript, который выглядит интересным.

Здесь это.

Ответ 2

jsdifflib выглядит как интересная javascript-клиентская библиотека. Я бы решительно склонялся к реализации на стороне клиента, если он предоставил нужные вам функции. Зачем налагать свои серверы на логику представления, когда вы все равно передаете клиенту данные?

Ответ 3

Попробуйте инструмент Pretty Diff. Он основан на jsdifflib, но улучшен, чтобы выделить различия между персонажами и перестроить их для скорости. Он также сравнивает сокращенный код с неминифицированным кодом. Он полностью написан на JavaScript и поддерживает вход JavaScript, CSS и XML/XHTML.

http://prettydiff.com/

Ответ 4

Если вы работаете с PHP, вы можете найти SimpleDIFF.

Ответ 5

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

Ответ 6

Библиотека Diff, Match и Patch Library доступна с идентичным API в JavaScript, Java, С#, Python и других языках. (Кажется, это был и может быть тем, что используется в Документах Google.)

Существует онлайн-демонстрация выходных данных HTML с различными вариантами.

Учитывая идентичный API, доступный как на клиентских, так и на серверных языках, должно быть проще сделать переход между ними, если вы решите, что хотите...