Требуется: командная строка HTML5 beautifier [закрыто]


хотел

командная строка HTML5 beautifier работает под Linux.

вход

искаженный, уродливый код HTML5. Возможно, результат нескольких шаблонов. Вы не любите его, он не любит вас.

выход

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

подозреваемые

  • порядок делает слишком много (черт, это меняет мой доктип!), и это не очень хорошо работает с HTML5. Может быть, есть способ заставить его сотрудничать, а не изменять что-нибудь?
  • ВИМ слишком мало. Это только отступы. Я хочу, чтобы программа добавляла и удаляла разрывы строк и играла с пробелами внутри тегов.

ЖИВОЙ ИЛИ МЕРТВЫЙ!

4 74

4 ответа:

HTML Tidy был разветвлен w3c и теперь имеет поддержку проверки HTML5.

https://github.com/w3c/tidy-html5

Я подозреваю, что tidy можно заставить работать с правильными параметрами командной строки.

http://tidy.sourceforge.net/docs/quickref.html

вы можете указать произвольный doctype и добавить новый блок, встроенные и пустые теги, а также включить и выключить множество опций очистки 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 как ваш nanoc-фильтр, ваш html будет автоматически красиво напечатан. Вы можете установить вывод html5 в качестве опции.