TYPO3 Ext: sk_codebox
in validem XHTML 1.1

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.

Originalcode (Zeile 2332)
  1. return "<pre$attributes>$header<ol$ol_attributes>"; 
valider Code (Zeile 2332)
  1. return "<div>$header<div><ol$ol_attributes>"; 

Die zweite Änderung befindet sich in Zeile 2393 (geshi.php). Ebenfalls einfach den Originalcode ersetzen.

Originalcode (Zeile 2393)
  1. return "</ol>$footer_content</pre>"; 
valider Code (Zeile 2393)
  1. return "</ol></div>$footer_content</div>"; 

Da alle guten Dinge drei sind, hier die letzte Änderung: Zeile 2393 (geshi.php).

Originalcode (Zeile 2264)
  1. $parsed_code .= "<li$attr>$start$line$end</li>$ls"; 
valider Code (Zeile 2264)
  1. $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.

 
Trackback-Link
 

Kommentare & Teilen