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é?
| Technorati tags: geshi, syntax, code, hylight, php, wordpress, plugin
8 comentaris per a “GeSHi syntax-colorer per posar-li color al codi”
Queda molt maco, li acabas de fer un :syntax on al teu tag pre
Oi que es maco? Encara que aquest fron negre que fas servir no queda masa be
Sip que queda curiós si. Fa molt més entenedor el codi. La font una mica petita pel meu gust.
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
si, es poden fer funcions, els paràmetres son $1 $2… igual q si cridessis un script nou.
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);



Ivo Sandoval
November 28th, 2005 @ 18:05