Resaltado con Geshi

Usando GeSHi para resaltar código

En Este artículo os voy a explicar como podemos hacer para resaltar nuestro código fuente con una libreria php muy simple de usar. Además de ser muy intuitiva los resultados estan muy conseguidos. De echo es uno de los sistemas más usados en la actualizadad y casi todos los CMStienen plugins que permiten usar GeSHi

Pincha en leer mas para leer el artículo completo

Usando GeSHi para resaltar código

En Este artículo os voy a explicar como podemos hacer para resaltar nuestro código fuente con una libreria php muy simple de usar. Además de ser muy intuitiva los resultados estan muy conseguidos. De echo es uno de los sistemas más usados en la actualizadad y casi todos los CMStienen plugins que permiten usar GeSHi

Pincha en leer mas para leer el artículo completo

Descargando e Instalando Geshi

Para empezar a usar GeSHi hemos de descargar el código y la librería de la página web oficial. La página oficial del proyecto es esta:  http://qbnz.com/highlighter/ Una vez descargamos el código, creamos una nueva carpeta en nuestro servidor y lo descomprimimos allí dentro. La estructura debería ser la siguiente: En nuestra carpeta deberíamos tener el fichero geshi.php que es la librería, y tres carpetas más. Estas son contrib, una carpeta con ejemplos “ready to run”, otra llamada docs con documentos de ayuda y documentación del proyecto y otra llamada geshi que es la que contiene los parsers para cada uno de los lenguajes que soporta GeSHi.Para hacer este ejemplo, nosotros crearemos un nuevo fichero en la raíz de esta carpeta, es decir junto con el fichero geshi.php donde es visible todas las carpetas de geshi comentadas anteriormente.

El primer intento de resaltado

Una vez realizado el paso anterior podemos proceder a intentar nuestro primer resaltado. La idea es hacer una especie de “hola mundo” pero con GeSHi. Así que lo más fácil que podemos hacer es intentar resaltar un trozo de código fácil, como por ejemplo podría ser una definición y una asignación de variables. En nuestro fichero recién creado y dentro de los tags de php debemos poner la siguiente línea: require $path . ‘geshi.php’; Con esto estaremos diciéndole a php donde ir a buscar las funciones de GeSHi, es decir estamos habilitando el uso de esas librerías.Ahora, lo primero que hemos de hacer para empezar a entendernos con GeSHi, es crear un objeto de GeSHi. Este tiene una función creadora, que requiere dos (o tres) parámetros: El primer parámetro es una string con el código que queremos resaltar. El segundo parámetro es una string que indica con que lenguaje de programación queremos resaltarlo, y el tercero y último, es opcional para especificar la ruta a el idioma en caso que no esté en la carpeta de idiomas de GeSHi. En nuestro caso usaremos los que ya vienen. Los podéis consultar en la carpeta geshi que hemos copiado antes.El segundo parámetro, el del lenguaje de programación, tiene que coincidir con el nombre del fichero del lenguaje de GeSHi, asi que hemos de llevar cuidado.En nuestro caso probaremos de resaltar el siguiente código java:

int number;
boolean yes;
number=5;
yes=false;

Para ello escribiremos el siguiente código:

require  . 'geshi.php';
$codigo="int number;
boolean yes;
number=5;
yes=true;";
$lenguaje="java";
$migeshi= & new GeSHi($codigo,$lenguaje);
echo $migeshi->parse_code();

$codigo tiene el trozo de código que queremos resaltar. Para que sea correcto el resaltado debe ser un código correcto en el lenguaje que queremos usar.$lenguaje es una string con el lenguaje que queremos aplicar el resaltado.$migeshi es una variable para guardar el objeto de geshi. Le pasamos a la creadora los dos parámetros, como hemos comentado anteriormente.Por último un echo para ver el código resaltado en el navegador. Notad que hemos de llamar a la función parse_code() que es la que nos devuelve el código resaltado.

Si todo ha ido correctamente el resultado debería ser el siguiente:

int number;
boolean yes;
number=5;
yes=false;

Probamos ahora con C++. Solo hemos de cambiar la palabra boolean por bool y donde seleccionamos el lenguaje poner cpp en lugar de java. El código sería algo así:

require  . 'geshi.php';
$codigo="int number;
bool yes;
number=5;
yes=true;";
$lenguaje="cpp";
$migeshi= & new GeSHi($codigo,$lenguaje);
echo $migeshi->parse_code();

Y el resultado:

int number;
bool yes;
number=5;
yes=true;

Entrando más a fondo

Para entrar más a fondo podemos consultar el fichero geshi.php y observar que funciones nos ofrece GeSHi para mejorar aún más la presentación. $geshi->enable_classes();Nos permitirá activar la salida en CSS. $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS);Esta llamada nos activará el número de línea delante de cada línea de código. Hemos elegido la constante GESHI_NORMAL_LINE_NUMBERS, pero podríamos seleccionar también GESHI_FANCY_LINE_NUMBERS para activar el otro estilo de números. Para más información, se puede consultar el fichero example.php en la carpeta contrib.

Deja un comentario