Syntaxhighlightning in Typo3

In der TYPO3 Extension grb_syntaxhighlighter sind leider nicht alle Programmiersprachen mit einem Brush gesegnet. Brushes sind zusätzliche Dateien für einzelne Sprachen in dennen die zu markierenden Keywords, Datentypen und Funktionen hinterlegt werden. Jedoch kann man mit relativ einfachen Mitteln ein Brush in die Extension einbinden. Beispielhaft hier am Beispiel mit Objective-C.

Als erstes muss man sich natürlich im Internet auf die Suche nach einem entsprechend guten Brush begeben, oder nötigenfalls selber erstellen. Wie solch ein Brush aussieht, kann man sich leicht an den schon vorhandenen Brushes ansehen. Die befinden sich unter:
typo3conf/ext/grb_syntaxhighlighter/res/syntaxhighlighter/scripts
Das ist auch der Ort an dem man seinen eigenen Brush ablegt. in unserem Beispiel heist die entsprechende Datei shBrushObjC.js. Diesen Dateinamen sollte man sich jetzt merken und die Datei typo3conf/ext/grb_syntaxhighlighter/pi1/class.tx_grbsyntaxhighlighter_pi1.php öffnen. In der Funktion main() wird jetzt ein weiterer Eintrag eingefügt welcher der Extension mitteilt wie unser Brush heist und in welcher Datei sich der Brush versteckt.

case 'objc':
$jsLanguageFile = 'shBrushObjC.js';
break;

Nun muss nur noch das Dropdownfeld in der Flexform entsprechend erweitert werden. Das geschieht in der Datei typo3conf/ext/grb_syntaxhighlighter/flexform_ds_pi1.xml. Dabei ist darauf zu achten das der numIndex entsprechend angepasst wird. Bei mir ist der Eintrag an 5. Stelle. Da der Index eines Arrays aber immer bei 0 anfängt, lautet bei mir der numIndex 4.

<numIndex index="4" type="array">
<numIndex index="0">Objective C</numIndex>
<numIndex index="1">objc</numIndex>
</numIndex>

Das wars dann aber auch schon. Nun kann man mit der Extension, nach dem löschen des Caches, den entsprechenden Brush nutzen.