HTML mit Nokogiri (statt Tidy) putzen

8

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?

Christian Joudrey 07.04.2011, 17:08
quelle

2 Antworten

8

Wenn Sie ein vollständiges Dokument verarbeiten, möchten Sie:

%Vor%

Dadurch werden html und body -Tags erzwungen und das DOCTYPE :

eingeführt oder beibehalten %Vor%

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:

%Vor%     
Phrogz 07.04.2011, 17:19
quelle
2

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.

    
the Tin Man 07.04.2011 18:06
quelle

Tags und Links