GeSHi syntax-colorer per posar-li color al codi

Gràcies a aquest post de Juanjo he descobert GeSHi, una clase de php que permet colorejar la sintaxis del codi de forma automàtica i suporta uns quants llenguàtges diferents. Per a integrar-lo amb WordPress he usat aquest plugin, aquí podeu veure els resultats:

Fragment de codi en PHP:


function get_mime_type(&$structure) {

$primary_mime_type = array("TEXT", "MULTIPART", "MESSAGE", "APPLICATION", "AUDIO", "IMAGE", "VIDEO", "OTHER");
if($structure->subtype) {
return $primary_mime_type[(int) $structure->type] . '/' . $structure->subtype;
}
return "TEXT/PLAIN";
}

Fragment de codi en bash script:


#!/bin/sh

source ./include.sh

function error {
echo $1
exit 1
}

function isfield() {

out=""
cfound="no"
lon=`echo -n $1 |wc -c`
lon=`echo $lon` # remove spaces
for ((i=1;i< =$lon;i++)); do
cchar=`echo $1 |cut -c $i`
if [ "$cchar" == "\"" ]; then
if [ "$cfound" == "no" ]; then cfound="yes" ; else cfound="no" ; fi
elif [ "$cchar" == "," ]; then
if [ "$cfound" == "yes" ]; then out="${out}\," ; else out="${out};" ; fi
else
out="${out}${cchar}"
fi
done
echo $out

}

A que queda bé? ;)

8 comentaris per a “GeSHi syntax-colorer per posar-li color al codi”

Ivo Sandoval
November 28th, 2005 @ 18:05    

Queda molt maco, li acabas de fer un :syntax on al teu tag pre ;)

Juanjo
November 28th, 2005 @ 22:01    

Oi que es maco? Encara que aquest fron negre que fas servir no queda masa be :D

Marc
November 28th, 2005 @ 23:14    

Uooo! Com mola. Ho poso a la cua del ToDo.

iolanda
November 29th, 2005 @ 10:11    

Sip que queda curiós si. Fa molt més entenedor el codi. La font una mica petita pel meu gust. :P

Dan
November 30th, 2005 @ 23:05    

Uauu! Molt xulo! Fa temps ho vaig estar buscant, i vaig acabar pensant deu ser impossible..

Per cert, es poden fer funcions en un shell script? Ara me n’entero… m’hauré de documentar millor :D

pof
December 1st, 2005 @ 00:39    

si, es poden fer funcions, els paràmetres son $1 $2… igual q si cridessis un script nou.

pof
January 20th, 2006 @ 03:13    

glups! després de l’upgrade a WP2 ha deixat de funcionar el plugin :(

pof
January 20th, 2006 @ 03:38    

Ja he fet que funcioni amb WP2, només calia canviar la prioritat a la funció add_filter del plugin de 6 a 11 i afegir un strip_tags, ha quedat així:


[...]
$geshi = new GeSHi(strip_tags($codes[$i]['code']), $codes[$i]['lang'], ABSPATH.'/wp-content/plugins/geshi/');
[...]
add_filter('the_content', 'GeshiSyntaxColorer', 11);
add_filter('the_excerpt', 'GeshiSyntaxColorer', 11);
add_filter('comment_text', 'GeshiSyntaxColorer', 11);

Deixa el teu comentari...