BBCode mit Syntaxhighlightning
7. November 2007 @ 09:25 | PHP
BBCode's ermöglichen das einfache Formatieren von Textpassagen in Blogs und Foren.
Mit der freien Library GeSHi kann zusätzlich mit wenigen Zeilen Code ein Syntaxhighlightning für Programmcode-Schnippsel eingebaut werden.
Implementierung
Zuerst muss GeSHi heruntergeladen, entpackt und an einem passenden Ort im eigenen Webspace platziert werden.
Über die Callback-Funktionen welche BBCode bietet, wird die Library anschliessend in den eigenen Blog oder ins eigene Forum eingebunden.
Schliesslich wird die Callback-Methode "do_bbcode_code" implementiert.
Bei mir sieht das etwa wie folgt aus:
if($action == 'validate') return true;
// Standard-Sprache oder wurde eine explizite angegeben?
if(!isset($attributes['default'])) $language = 'java5';
else $language = $attributes['default'];
if(!isset($geshi)) {
require_once('geshi/geshi.php');
$geshi = new GeSHi($content, $language);
}
return $geshi->parse_code();
}
Die Callback-Methode ist so gestaltet, dass direkt im code-Tag die Programmiersprache mitgegeben werden kann. Ist keine Sprache angegeben, wird automatisch angenommen, dass es sich um Java-Code handelt.
BBCode Beispiele
[code=java5]System.out.println("Explizites Java Beispiel");[/ code]
[code=php]System.out.println("Explizites PHP Beispiel");[/ code]
Weitere Infos
In den Dokumentationen von BBCode und GeSHi gibt es weitere Informationen zu Einstellungsmöglichkeiten der Libraries. GeSHi zum Beispiel bietet noch zig weitere Optionen zur Formatierung des Quellcodes.
