Die TYPO3 Extension sk_codebox Version 2.0.1 (wie hier im Blog für Code-Schnipsel genutzt) ist standardmäßig leider nicht XHTML 1.1 valide sobald man die Zeilennummern der Extension einblendet.
Für Webdesigner, welche XHTML 1.1 validen Code erhalten möchten gibt es nur zwei Möglichkeiten: Entweder wird das Problem mit der Extension und dem Validierungsfehler behoben oder die Extension muss weichen.
Da wir diese Extension soweit ganz gut finden, haben wir uns natürlich mit der ersten Möglichkeit – das Problem wird behoben – beschäftigt. Folgende Änderungen müsst ihr in der geshi.php durchführen (Ordner: typo3conf/ext/sk_codebox/) damit ihr validen Code erhaltet.
Achtung: Wir haften nicht für entstande Fehler / Unstimmigkeiten. Diese Anleitung ist auf eigene Gefahr zu nutzen.
So sieht die validierung bei XHTML 1.1 (mit eingeblendeten Zeilennummern) des Originalcodes der geshi.php aus.
Die erste Änderung befindet sich in Zeile 2332 (geshi.php). Dort müsst ihr den folgenden, Original HTML/PHP-Code ersetzen.
In XHTML 1.1 haben <ol>-Elemente nichts in einem <pre>-Tag verloren.
// Original return "<pre$attributes>$header<ol$ol_attributes>"; // Valid return "<div>$header<div><ol$ol_attributes>";
Die zweite Änderung befindet sich in Zeile 2393 (geshi.php). Ebenfalls einfach den Originalcode ersetzen.
// Original return "</ol>$footer_content</pre>"; // Valid return "</ol></div>$footer_content</div>";
Da alle guten Dinge drei sind, hier die letzte Änderung: Zeile 2393 (geshi.php).
// Original $parsed_code .= "<li$attr>$start$line$end</li>$ls"; // Valid $parsed_code .= "<li$attr>$start<pre style='margin-bottom:0px;margin-top:0px;'>$line</pre>$end</li>$ls";
Und so sieht die validierung bei XHTML 1.1 (mit eingeblendeten Zeilennummern) des neuen Codes der geshi.php aus.
Wer jetzt bestimmte Zeilen nicht finden konnte, hier gibt es die valide geshi.php sowie die Original geshi.php aus der TYPO3 Extension sk_codebox Version 2.0.1.
Ich hoffe es hat alles geklappt und bis zum nächsten Mal.