Доброго времени для, друзья.
Нужно сравнить две версии текста. В тексте присутствует
html-разметка. Сделать это можно либо php, либо js, без разницы. Пробовал через
prettyTextDiff, который обёртка для
google_diff_match_patch.js, но он может работать только с чистым текстом. Костылями и такой-то матерью упросил его работать с разметкой, но на неё он ужасно реагирует. Например, если в текстах будет заменена ul на ol, то выведет uo. И вот тут вообще беда. Не нашёл никакого адекватного решения, проверка длины удалённой/добавленной (>3 символов, например) строки ломает вообще всё.
Вот тут человек столкнулся с такой же проблемой:
Клик, поэтому возьму сразу его пример:
Текст 1:
<h1>Заголовок</h1>
Подзаголовок
Мама мыла раму.
Не было тучь на небе.
Текст 2:
<h1>Название</h1>
<h2>Подзаголовок</h2>
Мама мыла пуделя.
В небе были тучи.
Результат:
<h1><span class=old>Заголовок</span> <span class=new>Название</span><h1>
<h2>Подзаголовок</h2>
Мама мыла <span class=old>раму</span> <span class=new>пуделя</span>.
<span class=old>Не было тучь на небе.</span>
<span class=new>В небе были тучи.</span>