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

Есть ли альтернатива HTML Tidy?

У меня встроенный HTML Tidy в моем приложении для очистки входящего HTML. Но у Tidy огромное количество ошибок, и исправление их непосредственно в источнике - мой худший кошмар. Типичный исходный код - нечитаемая мерзость. Thousand + линейные функции, плохое именование имен, код спагетти и т.д. Это действительно ужасно.

Хуже того, официальная разработка похоже, прекратилась. За последние 12 месяцев в официальный репозиторий CVS было три транзакции с записью. Но он был мертв и похоронен гораздо дольше, чем это...

Итак, я ищу приложение или библиотеку OSS C или С++, которая может делать то, что может сделать Tidy (когда это похоже на это): исправить плохую разметку HTML и преобразовать ее в действительный XHTML (это та часть, которая мне интересна в). И я имею в виду всевозможные плохие разметки.

Есть ли что-то подобное?

EDIT: Мне нужно это для манипуляций на дереве DOM с помощью инструмента обработки XML и для общего соответствия спецификации XHTML. Мое приложение должно принимать HTML-код от пользователей (что часто бывает недействительным всеми способами) и выводить действительный XHTML. Он должен иметь возможность обрабатывать даже HTML, который обычно не отображается в браузере, потому что пользователь редактировал его вручную и не проверял впоследствии.

Замена замены для парсинга, исправляющего ошибки Tidy... который не сосать. Я не возражаю против ошибок, если источник доступен для чтения, и я могу самостоятельно исправлять проблемы, или если есть активные разработчики, которые своевременно предоставляют исправления.

4b9b3361

Ответ 1

Не могли бы вы рассказать нам, для чего вы планируете использовать этот инструмент? Как и в, вы хотите исправить статические веб-страницы или хотите какой-то шаг фильтрации перед другими манипуляциями, чтобы какой-то инструмент мог обрабатывать багги веб-страниц?

Лично я пишу свой собственный инструмент поверх Python BeautifulSoup или lxml всякий раз, когда мне нужно --- это не более дюжины строк script и делает многое из того, что я хочу.

Ответ 2

Существует новый, хороший, правильный HTML 5, поддерживающий Tidy, поэтому альтернатива старому, уродливому Tidy будет Tidy (репозиторий GitHub).

Ответ 3

Попробуйте Pretty Diff. Это значительно превосходящий алгоритм благоустройства, и он не делает никаких предположений о вашем вводе.

http://prettydiff.com/?m=beautify&html

Ответ 4

Для чего-то, что на самом деле исправляет код, ваш лучший выбор по-прежнему является HTML Tidy. Есть много линтеров, но на самом деле ничего не исправляет ошибки в HTML, кроме Tidy.

На первый взгляд, современные программисты OOP могут подумать, что исходный код является нечитаемой мерзостью, но в мире C Tidy - довольно сложная библиотека, которая использует множество передовых концепций OO и предлагает очень продуманный интерфейс, который предоставляет почти все его функциональности в чистом C API.

Случайный разработчик будет потерян, но после погружения код довольно красив. Конечно, соглашения об именах неоднозначны, но PR приветствуются!