2012-03-21 5 views
1

Я пытаюсь автоматически отступать вывод HTML5. Инструментом, который я пытался использовать, был JTidy, но проблема в том, что он не поддерживает элементы HTML5 и, например, перемещает все и в заголовок, тогда как HTML5 использует их в теле.Довольно форматирование вывода HTML5

Поскольку HTML не является XML, я не могу использовать типичные инструменты Java XML для отступов.

+0

HTML может быть XML. Вы можете сделать свой HTML похожим на XML (закрыть все теги и т. Д.), А затем инструменты должны работать. –

+2

Не обязательно в этом случае: например, «itemscope» как пустой атрибут в HTML5 недопустим в XML. –

+0

Два других примера. Тип doctype для HTML5 недействителен XML, и есть некоторые элементы, которые больше не должны закрываться, например мета. –

ответ

2

Наиболее надежное решение

Это не Java, но HTML Tidy for HTML5 поддерживается W3C и инструмент командной строки, что делает его очень гибким. Это текущая вилка и активно поддерживается, как показано на момент фиксации на GitHub home page for the project.

Java Решение

Если вы не можете получить latest version of HTML Tidy for HTML5, который поддерживает HTML5 работать тогда XML еще вариант.

HTML5, конечно, вовсе не предназначен для XML дружелюбен, но он по крайней мере дать слова в виде XML-сериализации для HTML5, который, в этой статье я буду называть XHTML5. ..

Существует XML serialization of HTML5, позволяющий использовать любые стандартные средства форматирования XML для их форматирования любым способом.

+0

Ну, я знаю об этом, но мы хотим придерживаться HTML5. –

+0

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

+0

@austincheney, тогда вы проголосуете из незнания, читайте для понимания, это ** HTML Tidy для HTML5 **, который является вилкой и активно поддерживается, если вы посмотрите на моменты фиксации на GitHub, они показывают активность в * часах * и * дней *, то есть ** активно ** поддерживается, насколько я могу судить. –