Командная строка для HTML-принтера: как сделать грязный HTML-код читабельным [закрыто]


108

Я ищу рекомендации по принтерам HTML pretty, которые соответствуют следующим требованиям:

  • Принимает HTML в качестве входных данных, а затем выводит красиво отформатированную / с правильным отступом, но «графически эквивалентную» версию заданного входного HTML.
  • Должен поддерживать работу из командной строки.
  • Должен быть с открытым исходным кодом и работать под Linux.

5
Другие варианты: pup(без аргументов) xmllint --format --html -, и xml fo --html.
nisetama 08

1
curl httpbin.org | tidy -im
Fabijan Bajo

Также: hxnormalize из html-xml-utils (Debian)
elig

связанные: stackoverflow.com/questions/16090869/… вы также можете изучить инструменты XML
Alex

1
Честно говоря, мне трудно понять, почему это считается не по теме ...
Виктор Шредер,

Ответы:


91

Взгляните на проект HTML Tidy: http://www.html-tidy.org/

Дедушка инструментов HTML с поддержкой современных стандартов.

Раньше существовал форк tidy-html5, который с тех пор стал официальным. Вот его репозиторий на GitHub .

Tidy - это консольное приложение для Mac OS X, Linux, Windows, UNIX и других. Он исправляет и очищает документы HTML и XML, исправляя ошибки разметки и обновляя устаревший код до современных стандартов.

Для ваших нужд вот командная строка для вызова Tidy:

tidy inputfile.html

14
Спасибо! "tidy -i -m -w 160 -ashtml -utf8 index.html" сделал свое дело! Оказывается, в MacOS X по умолчанию установлена ​​приборка - отлично!
Knorv 03

1
Tidy боролся с получением отступа, пока я не запустил его с этой опцией (вместо того, чтобы позволить ему по умолчанию "авто" с -i: tidy --indent yes
Эдвард Андерсон

2
Tidy великолепен как средство проверки / линта, но не так хорош как украшение кода. Две проблемы: (1) он может работать только с файлами, а не со стандартным вводом (поэтому вы не можете, например, отправить выделенный текст из Notepad ++ в tidy.exe и заставить его выводить отформатированный код обратно в Notepad ++); (2) Она имеет неприятности форматирования много кода, например: <form><input><input><input><input><input></form>.
thdoan

1
Также он изменяет файл, когда не может понять текст.
Paweł Szczur

Одно замечание о tidy-html5: если вы используете встроенный javascript, вам нужно включить его, type="text/javascript"иначе tidy добавит<![CDATA[
jcubic

10

Обновление 2018:homebrew/dupes теперь осуждается, опрятный-html5 может быть установлен непосредственно.

brew install tidy-html5

Оригинальный ответ:

Tidyиз OS X не поддерживает HTML5. Но есть экспериментальная ветка, на Githubкоторой работает.

Чтобы получить это:

 brew tap homebrew/dupes
 brew install tidy --HEAD
 brew untap homebrew/dupes

Это оно! Радоваться, веселиться!


1
Error: No available formula with the name "tidy". brew install tidy-html5работает.
Pysis

Действительно brew install tidy-html5работает, и вам также не нужен кран homebrew / dupes.
Ogier

Tidy не просто форматирует HTML. Он удалит пустые теги и изменит порядок технически недопустимого HTML-кода , принимаемого браузерами (читай: используется в Интернете). <p class="a"><div class="b"></div></p>переупорядочивается как <p class="a"></p><div class="b"></div>и что-то вроде <p><div></div></p>просто удаляется. См. Эту проблему на GitHub . Если вы используете tidy, вы должны запускать его в тихом режиме tidy -qи не игнорировать такие предупреждения, как trimming empty <p>. Не используйте его в HTML, который вы не писали.
Борис

6

Чтобы получить обновленный, независимый от ОС ответ на этот вопрос:

В то время как исходный проект HTMLTidy бездействовал более 6 лет , "Сообщество и бизнес-группа W3C" , известная под названием "HTML Tidy Advocacy Community Group (HTACG)" , теперь начала продолжать свое развитие с целью сделать это полностью совместим с HTML5 . Группа была сформирована в январе 2015 года, и хотя они описывают текущее состояние как «незавершенное производство», двоичные файлы уже доступны для загрузки.



0

Просто позднее ответ на вопрос ОТ.

Homebrew tidy-html5установлен, как и следовало ожидать.

Он связан как tidy5.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.