Требуется: Командная строка HTML5 beautifier

Требуются

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

Ввод

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

Выход

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

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

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

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

Ответ 2

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

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

Вы можете указать произвольный тип doctype и добавить новые блокированные, встроенные и пустые теги, а также включить и отключить множество опций очистки.

В зависимости от того, что вы хотите, чтобы "украсить", вы, вероятно, получите достойные результаты. Вероятно, он не сможет выполнить некоторые более продвинутые функции, такие как переписывание содержимого html для устранения ложных элементов или их объединения, если оно не распознает их.

Ответ 3

Скопированный с живого веб-сайта, который я использовал с использованием 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);

Ответ 4

Если вы используете Haml в качестве вашего нано-фильтра, ваш html автоматически будет напечатан. Вы можете установить выход html5 в качестве опции.