BBCode mit Syntaxhighlightning

Tags: , , ,

9. November 2007

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.

$bbcode->addCode ('code', 'usecontent?', 'do_bbcode_code', array('usecontent_param' => 'default'), 'code', array('listitem', 'block', 'inline', 'link'), array());

Schliesslich wird die Callback-Methode “do_bbcode_code” implementiert.
Bei mir sieht das etwa wie folgt aus:

function do_bbcode_code($action, $attributes, $content, $params, $node_object) {
   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.

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.

Ihre Meinung dazu






 

Bereit? Dann...