Gesucht
Ein Befehlszeilen-HTML5-Verschönerer, der unter Linux ausgeführt wird.
Eingang
Verstümmelter, hässlicher HTML5-Code. Möglicherweise das Ergebnis mehrerer Vorlagen. Du liebst es nicht, es liebt dich nicht.
Ausgabe
Pure Schönheit. Der Code ist schön eingerückt, hat genügend Zeilenumbrüche und kümmert sich um Leerzeichen. Anstatt es in einem Webbrowser anzuzeigen, möchten Sie den Code direkt auf Ihrer Website anzeigen.
Verdächtige
- ordentlich macht zu viel (zum Teufel, es ändert meinen Doctype!), und es funktioniert nicht gut mit HTML5. Vielleicht gibt es eine Möglichkeit , es zusammenarbeiten und nicht Alter zu machen alles ?
- vim macht zu wenig. Es werden nur Einrückungen vorgenommen. Ich möchte, dass das Programm Zeilenumbrüche hinzufügt und entfernt und mit dem Leerzeichen in Tags spielt.
xmllint --format
echo '<!doctype html>'; (echo "<?xml version='1.0' ?>"; tail -n +2 < index.html) | xmllint --format - | sed -re 's/(<script[^>]*)\/>/\1><\/script>/g' | tail -n+2
. Dies sollte mit Eingabedokumenten mit Doctype in Zeile 1, aber ohne XML-Prolog funktionieren. Ausgaben im gleichen Stil.Antworten:
HTML Tidy wurde vom w3c gegabelt und unterstützt jetzt die HTML5-Validierung.
https://github.com/w3c/tidy-html5
quelle
apt-get install tidy
auf DebianIch vermute, dass aufgeräumt werden kann, um mit den richtigen Befehlszeilenparametern zu arbeiten.
http://tidy.sourceforge.net/docs/quickref.html
Sie können einen beliebigen Doctype angeben, neue Block-, Inline- und leere Tags hinzufügen und viele Reinigungsoptionen für das Aufräumen ein- und ausschalten.
Je nachdem, was Sie "verschönern" möchten, können Sie wahrscheinlich anständige Ergebnisse erzielen. Es wird wahrscheinlich nicht in der Lage sein, einige der fortgeschritteneren Dinge wie das Umschreiben des HTML-Inhalts zu tun, um falsche Elemente zu beseitigen oder sie zu kombinieren, wenn es sie nicht erkennt.
quelle
tidy -as-xhtml --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --doctype "<!DOCTYPE HTML>" --break-before-br yes --sort-attributes alpha --vertical-space yes
(Haftungsausschluss - ich habe kein HTML5 verwendet und nur ein paar neue Tags von w3schools.com/html5/html5_reference.asp in die Liste kopiert, indem ich erraten habe, welche block / inline waren, also bitte nach Bedarf anpassen.)--doctype "<!DOCTYPE HTML>"
und--sort-attributes alpha
würde aus irgendeinem Grund nicht funktionierenVon einer Live-Website kopiert Ich habe HTML5 verwendet, das dank dieses Snippets auf allen Seiten als korrektes HTML5 validiert ist (in diesem Fall PHP, aber die Optionen und die Logik sind für jede verwendete Sprache gleich):
$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);
quelle
<audio>
Tags zu arbeiten, die leere<source>
Tags verwenden, benötigen Sie außerdem diese Konfigurationsoption:'new-empty-tags' => 'source'
Wenn Sie Haml als Nanoc-Filter verwenden, wird Ihr HTML-Code automatisch hübsch gedruckt. Sie können die HTML5-Ausgabe als Option festlegen.
quelle