Den Wordpress-Output vor der Auslieferung mit tidy vernünftig formatieren zu lassen ist (zumindest in meinem Fall) ein kleiner Aufwand... Ich musste folgendes tun, um dieses Blog als valides und gut lesbares (X)HTML ausgeben zu können.
- Zunächst habe ich mal nach einem PlugIn für Wordpress gesucht, und bin letztlich bei diesem gelandet: Christopher Korns Wordpress Hack, dass eigentlich nur einen Output Buffer startet und den Buffer mittels bestimmten tidy-Funktionen bereinigt, indem die index.php durch eine neue Version ersetzt wird.
- So weit so gut, die Installation von tidy konnte beginnen... und das hat nun etwas länger gedauert
Ich brauchte eine PECL tidy-Implementierung, die ich mit
-
pear install tidy
installieren konnte (vorausgesetzt natürlich man hat PEAR überhaupt installiert). Doch hier gab es dann verschiedene Fehlermeldungen (wie z.B. phpize not found), die ich nach einigem Suchen bei Google lösen konnte, indem ich einige benötigte Pakete inkl. ihrer Abhängigkeiten nachinstallierte:
-
apt-get install php5-dev php5-cgi libtidy-dev tidy
-
- Nach einem Apache-Neustart kam dann der erste Test der ausgetauschten index.php... und es kam... nichts! Mhh... woran lag das nun? Wohl an unterschiedlichen PHP- und tidy-Versionen des Hack-Autors und mir. Daher habe ich den Hack etwas angepasst und meine index.php sieht nun wie folgt aus.
-
function wp_clean ($buffer)
-
{
-
return tidy_repair_string($buffer, $config, "UTF-8");
-
}
-
-
if ($_GET['feed'] != (feed||rdf||rss||rss2||atom)) {
-
} else {
-
}
-
-
require('./wp-blog-header.php');
-
- Das Array in Zeile 4 enthält die Konfiguration für tidy. Eine nette Seite mit möglichen Einstellungen ist diese hier. Meine Konfiguration sieht so aus:
-
'indent' => TRUE,
-
'output-xhtml' => TRUE,
-
'output-xml' => FALSE,
-
'tidy-mark' => TRUE,
-
'wrap' => 0,
-
'wrap-attributes' => FALSE,
-
'wrap-script-literals' => FALSE,
-
'tab-size' => 4 ,
-
'indent-spaces' => 4,
-
'indent-attributes' => FALSE,
-
'doctype' => 'strict',
-
'char-encoding' => 'utf8',
-
'numeric-entities' => FALSE,
-
'quote-marks' => FALSE,
-
'quote-nbsp' => TRUE,
-
'quote-ampersand' => TRUE,
-
'fix-backslash' => TRUE,
-
'break-before-br' => FALSE,
-
'uppercase-tags' => FALSE,
-
'uppercase-attributes' => FALSE,
-
'clean' => FALSE,
-
'logical-emphasis' => TRUE,
-
'drop-empty-paras' => TRUE,
-
'drop-font-tags' => FALSE,
-
'enclose-text' => FALSE,
-
'enclose-block-text' => FALSE,
-
'fix-bad-comments' => TRUE,
-
'add-xml-space' => FALSE,
-
'vertical-space' => TRUE,
-
);
- ADD: Habe tidy erstmal abgeschaltet, da es mir entweder die Umlaute etc. in kryptischen Zeichen wiedergab oder spezielle Entities wie … ("…") zerstörte. Aber gut zu wissen, das es prinzipiell funktioniert
Und Wordpress gibt ja per se schon valides (X)HTML aus, das einzige, was tidy schöner machen würde, wäre die Einrückung des Quelltextes...











