Ищу: Командная строка HTML5 beautifier
В розыске
HTML5 beautifier, работающий под Linux.
вход
Искаженный, уродливый код HTML5. Возможно, результат нескольких шаблонов. Вы не любите это, это не любит вас.
Выход
Чистая красота. Код хорошо с отступом, имеет достаточно разрывов строк, заботится о его пробелах. Вместо того, чтобы просматривать его в веб-браузере, вы хотели бы отобразить код на своем веб-сайте напрямую.
Подозреваемые
- Tidy делает слишком много (черт возьми, он меняет мой тип документа!), и он не очень хорошо работает с HTML5. Может быть, есть способ заставить его сотрудничать и ничего не менять?
- vim делает слишком мало Это только отступы. Я хочу, чтобы программа добавляла и удаляла разрывы строк и играла с пробелами внутри тегов.
МЕРТВЫЙ ИЛИ ЖИВОЙ!
4 ответа
HTML Tidy был разветвлен w3c и теперь поддерживает проверку HTML5.
Я подозреваю, что приборка может работать с правильными параметрами командной строки.
http://tidy.sourceforge.net/docs/quickref.html
Вы можете указать произвольный тип документа, добавить новый блок, встроенные и пустые теги, а также включить и отключить множество опций очистки tidy.
В зависимости от того, что вы хотите "украсить", вы, вероятно, можете получить приличные результаты. Вероятно, он не сможет сделать некоторые из более сложных вещей, таких как переписывание html-контента, чтобы исключить ложные элементы или объединить их, если он их не распознает.
Скопированный с живого веб-сайта, который я сделал, используя HTML5, который проверен как правильный HTML5 на всех страницах благодаря этому фрагменту (в данном случае PHP, но параметры и логика одинаковы для любого используемого языка):
$options = array(
'hide-comments' => true,
'tidy-mark' => false,
'indent' => true,
'indent-spaces' => 4,
'new-blocklevel-tags' => 'article,header,footer,section,nav',
'new-inline-tags' => 'video,audio,canvas,ruby,rt,rp',
'new-empty-tags' => 'source',
'doctype' => '<!DOCTYPE HTML>',
'sort-attributes' => 'alpha',
'vertical-space' => false,
'output-xhtml' => true,
'wrap' => 180,
'wrap-attributes' => false,
'break-before-br' => false,
);
$buffer = tidy_parse_string($buffer, $options, 'utf8');
tidy_clean_repair($buffer);
// Fix a tidy doctype bug
$buffer = str_replace('<html lang="en" xmlns="http://www.w3.org/1999/xhtml">', '<!DOCTYPE HTML>', $buffer);
Если вы используете Haml в качестве вашего нанокфильтра, ваш html будет автоматически напечатан. Вы можете установить вывод html5 в качестве опции.