Симпатичний принтер HTML командного рядка: Зробити безладним HTML читаним [закритим]


105

Я шукаю рекомендації щодо симпатичних принтерів HTML, які відповідають таким вимогам:

  • Візьме HTML як вхідний файл, а потім виведе добре відформатовану / правильно відрізану, але "графічно еквівалентну" версію даного вхідного HTML.
  • Повинна підтримувати роботу командного рядка.
  • Повинно бути відкритим кодом та працювати під Linux.

5
Інші варіанти pup(без аргументів) xmllint --format --html -, та xml fo --html.
нісетама

1
завиток httpbin.org | охайний -ім
Баджо

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

пов'язано: stackoverflow.com/questions/16090869/… Ви також можете заглянути в XML Tools
Alex

1
У мене є проблеми, щоб зрозуміти, чому це вважається поза темою, чесно ...
Віктор Шредер,

Відповіді:


90

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

Дідусь із інструментів HTML, із підтримкою сучасних стандартів.

Раніше була вилка під назвою tidy-html5, яка з тих пір стала офіційною справою. Ось його сховище GitHub .

Tidy - консольний додаток для Mac OS X, Linux, Windows, UNIX тощо. Він виправляє та очищує документи HTML та XML, виправляючи помилки розмітки та модернізуючи застарілий код до сучасних стандартів.

Для ваших потреб, ось командний рядок для виклику Tidy:

tidy inputfile.html

14
Дякую! "охайний -i -m -w 160 -ashtml -utf8 index.html" зробив трюк! Виявляється, акуратно встановлено за замовчуванням у MacOS X - чудово!
knorv

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

2
Tidy чудово підходить як інструмент валідатора / ворсу, але він не такий чудовий, як красувач коду. Дві проблеми: (1) він може працювати лише з файлами, а не зі стандартним введенням (тому ви, наприклад, не можете надсилати вибраний текст із Блокнот ++ до tidy.exe, а його виводити відформатований код назад у Блокнот ++); (2) Вона має неприємності форматування багато коду, наприклад: <form><input><input><input><input><input></form>.
thoan

1
Також він змінює файл, коли він не може зрозуміти текст.
Paweł Schczur

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

10

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

brew install tidy-html5

Оригінальна відповідь:

Tidyз ОС 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працює, і ви не потребуєте домашньої капусти / багрянини.
Ogier Schelvis

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 -qі не ігнорувати будь-які попередження trimming empty <p>. Не використовуйте його на HTML, який ви не написали.
Борис

6

Щоб отримати оновлену, оперативну відповідь на це питання:

Незважаючи на те, що оригінальний проект HTMLTidy перебуває у спокої вже понад 6 років , "W3C Community & Business group", що називається "HTML Tidy Advocacy Community Group (HTACG)" , почав продовжувати свій розвиток, з метою його створення повністю HTML5-сумісний . Група була утворена в січні 2015 року, і хоча вони описують поточний стан як "незавершений процес", бінарні файли вже доступні для завантаження.



0

Лише пізнє продовження запитання щодо ОТ.

Домашній мов tidy-html5встановлений так, як ви очікували.

Це пов'язано як tidy5.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.