Есть ли альтернатива HTML Tidy? - PullRequest
19 голосов
/ 21 февраля 2010

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

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

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

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

РЕДАКТИРОВАТЬ: мне это нужно как для манипуляций с деревом DOM с помощью инструмента обработки XML, так и для общего соответствия спецификации XHTML. Мое приложение должно принимать HTML от пользователей (который часто недопустим во всех отношениях) и выводить действительный XHTML. Он должен уметь обрабатывать даже HTML-код, который обычно не отображается в браузере, поскольку пользователь редактировал его вручную и впоследствии не проверял.

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

Ответы [ 4 ]

2 голосов
/ 29 сентября 2015

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

2 голосов
/ 21 февраля 2010

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

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

1 голос
/ 10 декабря 2011

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

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

0 голосов
/ 11 октября 2017

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

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

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

...