WordPress & syntax highlighter plugin

Thursday, January 29th, 2009 | Author:

Quale giorno fa, sono riuscito (finalmente) a finalizzare un post che parla di delegate in C++ … per la natura stessa del post era necessario inserire nel post del codice. Ho cominciato, quindi, a guardami attorno e visto che ero rimasto piacevolmente colpito dall’impronta estetica del plugin che viene fornito, di default, da WordPress.com, mi sono mosso in quella direzione.

Proprio lo stesso plugin, non l’ho trovato… ma ne ho trovati altri due (molto simili, invero):

Entrambi questi plugin si basano sullo stesso motore (Google Syntax Highlighter di Alex Gorbatchev) e si integrano facilmente con WordPress.

Scelto quello che mi sembrava più carino (guarda caso il secondo 😉 ) l’ho installato e felice felice ho cominciato a inserire il codice nel mio post… e qui sono cominciati i problemi 🙁 .

Nulla di grave, ma mi sono accorto di un problemino, che proprio mi dava fastidio:
se si vuole usare questi due plugin, il post deve essere inserito e modificato obbligatoriamente in visualizzazione HTML; se così non si fa si hanno una serie di comportamenti dell’ambiente di WordPress che difficilmente sono digeribili:

  • non è possibile inserire le tabulazioni;
  • ogni tanto l’analizzatore del codice di WordPress va in crisi e mette i tag a caso;
  • si hanno una serie infinita di problemi con i caratteri “speciali” (e.g., <, >, &, etc. etc.)

Naturalmente potevo “sbattermene” e inserire il post solo in modalità HTML, ma prima o poi (lo so) sarei entrato in quel post in modalità Visual creando un gran casino.

Cosa ho fatto quindi? Semplice: ho apportato una serie di piccole modifiche al plugin SyntaxHighlighter Plus (quello che infine avevo scelto) che mi permettono di utilizzarlo anche in modalità VISUAL senza gli inconvenienti di cui sopra.

In realtà, ho fatto altre due modifiche:

a) ho eliminato il menu copia in clipboard, visto che mi sono accorto che non funziona (in realtà non funziona neppure quello del plugin usato da WordPress.com), almeno con FireFox;

b) ho aggiunto (sempre per poterlo usare in modalità Visual) la possibilità di trasformare quattro segni di underscore di seguito (____) in uno spazio di tabulazione (unica avvertenza dopo gli underscore di tabulazione è necessario sempre aggiungere uno spazio). Quindi un frammento di codice scritto così:

int foo(int a, int b) {
____ return a * b;
}

diventa:

int foo(int a, int b) {
____ return a * b;
}

Chi fosse interessato a provare questa patch la può scaricare qui: download patch. L’installazione è semplicissima, basta scompattare il file .zip e copiare il suo contenuto nella cartella dove si trova il plugin SyntaxHighlighter Plus (dopo averne fatto una copia di backup, naturalmente 😉 ).

Ultima nota: la patch è stata sviluppata per la versione 0.18 del plugin. Attualmente è stata rilasciata una versione più recente che si basa sull’ultima versione del motore di Alex Gorbatchev; questa patch non è compatibile con questa ultime versione, ma spero di poter rilasciare una nuova versione al più presto.

Category: Informatica
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  1. jp says:

    Premetto che sto aspettando ansiosamente il tuo post sui delegate… 😛

    Detesto l’editor visuale di WordPress: guardando il codice che produce mi sembra di vedere il prodotto di un qualunque editor Word-like che esporta in HTML…

    Preferisco fare da me. 😀

    Quanto alle tablulazioni nel codice hai ragione: o te le porti dietro direttamente da un IDE (es: io incollo direttamente da Eclipse/CDT), o copi incolli i soli “spazi-tab” sempre dall’esterno, oppure c’è poco da fare (il tasto TAB è quasi uno standard per ciclare negli elementi del browser).

    Ciau! ^^

  2. jp says:

    Poi c’è anche un altro errore nel Syntax Highleter usato da WordPress(.com), o meglio nell’interazione con tutto il “framework”. Prova a mettere una faccina nel codice e vedere cosa fa… 😀

  3. Eros Pedrini says:

    void smileInCode() {
    ____ cout << 🙂 << endl; } [/sourcecode] Così? hi hi hi Il risultato lo immaginavo, visto che la trasformazione in visualizzazione carina viene fatta client side (e quindi WordPress ha già fatto la trasformazione delle faccine 😉 ... comunque grazie di avermelo segnalato, la soluzione dovrebbe essere banale e appena ho un briciolo di tempo la preparo 😛 P.S. per il post sui delegate, pensa che tu sei Il Fortunato che almeno ha letto la bozza 😉 cheers

  4. jp says:

    Grazie per avermi concesso l’onore di leggere la bozza ma… a quando il post completo??? 😀 😀 😀

  5. Eros Pedrini says:

    JP… la tua attesa sta per finire… hihihi 😉

    cheers

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>