Das Juwel tidy
wird nicht mehr beibehalten und weist mehrere Speicherprobleme auf.
Einige Leute haben vorgeschlagen, Nokogiri zu verwenden.
Ich putze derzeit den HTML-Code mit:
Nokogiri::HTML::DocumentFragment.parse(html).to_html
Ich habe jedoch zwei Probleme:
Nokogiri entfernt die DOCTYPE
Gibt es eine einfache Möglichkeit, den bereinigten HTML-Code mit einem html
und einem body
-Tag zu versehen?
Wenn Sie ein vollständiges Dokument verarbeiten, möchten Sie:
%Vor% Dadurch werden html
und body
-Tags erzwungen und das DOCTYPE
:
Beachten Sie, dass die Ausgabe nicht garantiert syntaktisch gültig ist. Wenn ich zum Beispiel ein beschädigtes Dokument anführe, das lügt und behauptet, dass es streng HTML4.01 ist, wird Nokogiri ein Dokument mit diesem DOCTYPE ausgeben, aber ohne den erforderlichen <head><title>...</title></head>
-Abschnitt:
Das Tidy-Juwel wird möglicherweise nicht unterstützt, aber die zugrunde liegende tidy
-App wird beibehalten und das ist es, was du wirklich brauchst. Es ist flexibel und hat eine ziemlich Liste von Optionen .
Sie können HTML auf viele verschiedene Arten an HTML übergeben und seine Konfiguration in einer .tidyrc
-Datei definieren oder sie in der Befehlszeile übergeben. Sie können Rubys %x{}
verwenden, um eine Datei zu übergeben oder IO.popen
oder IO.pipe
zu verwenden, um sie als Pipe zu behandeln.