Daten|teiler
Kopieren als Kulturtechnik

Quellcode-Beispiele in WordPress

2. April 2009 von Christian Imhorst

Mit Quellcode-Beispielen in WordPress ist es ziemlich trickreich: Obwohl es viele Plugins gibt, die das Veröffentlichen von Quellcode in einem Blog vereinfachen sollen, funktioniert keines der aktuellen Plugins wirklich überzeugend. Grundsätzlich muss man sich mit dem Problem herumschlagen, dass Sonderzeichen, Leerzeichen usw., die man im Quellcode hat, von WordPress konvertiert oder einfach verschluckt werden. Deshalb sind einige Plugins entwickelt worden, die Abhilfe schaffen sollen.

Vier davon habe ich getestet: Preserve Code Fromatting, WP-Syntax, Code Autoescape und Code Markup. Preserve Code Formatting hatte Probleme mit dem Backslash, so wird “\0″ nicht dargestellt. Bei den anderen Plugins hatte ich Probleme mit den größer oder kleiner Zeichen: “<" oder ">“. Bei Beispielen mit C++-Quellcode wurde die Zeile #include <iostream> nur halb dargestellt, nämlich nur #include. Entweder wurde die Zeile in den Artikeln oder in den Kommentaren falsch dargestellt. Beides zusammen hat nicht funktioniert.

Gelöst habe ich das Ganze nun folgendermaßen: Das Plugin Code Markup habe ich für die Darstellung von Quellcode in den Artikeln installiert, die von <code>-Tags umgeben sind. Für größere Code-Blöcke nehme ich WP Syntax und schließe sie in <pre>-Tags mit Sprachattribut, z.B. <pre lang=”cpp”> ein. Allerdings funktionieren beide Plugins nicht in den Kommentaren. Dafür musste ich noch Code Auto Escape installieren, was sich aber wieder auf die Quellcode-Beispiele in den Artikeln ausgewirkt hat. Anstelle der Sonderzeichen wurden die ASCII-Werte dargestellt. Dafür wurde aber der Quellcode in den Kommentaren richtig angezeigt. Deshalb habe ich Code Auto Escape so umgebaut, dass es nur bei den Kommentaren greift, indem ich den Code-Block von

add_filter('content_save_pre', 'pri_cae_mask', 28);

bis

add_filter('the_excerpt', 'pri_cae_unmask_replace', 99);

mit Kommentarzeichen versehen habe. Man kann den ganzen Block auch einfach löschen. Jetzt reicht es, Quellcode-Beispiele in den Kommentaren mit den <code>-Tags zu umschließen, um den Code richtig anzeigen zu lassen.

Geschrieben in Haustechnik

2 Antworten

  1. Christian Imhorst

    Wie man sieht, funktionierts:

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    int main(){
       cout<<"\nHallo Welt!\n"<<endl;
       return 0;
    }
  2. Sabine

    Echt interessant!