Opciones para resaltar el Código (Primera parte)

Escrito el 22 de Mayo del 2007 por artux.
Categoria: Desarrollo, Tutoriales, Programacion, Recursos.

Estas son algunas de las tantas opciones que existen para darle formato y estilo a nuestro código, algunas probablemente ya las conoces y otras quizas no. Pero, con sus pros y sus contras, todas son muy buenas; implementar una o la otra es solo una cuestión de diferentes necesidades y en ultima instancia una cuestión de gustos.

Diferentes Opciones para Resaltar el Código

Opciones ServerSide o del lado del Servidor:

Ejemplo:

<?php

 //Resaltando una cadena de texto.
 highlight_string ('<?php phpinfo(); ?>');

 //Resaltando un archivo entero.
 highlight_file('file.php'); 

?>

Son dos funciones extremadamente simples de usar, y si tenemos acceso al archivo php.ini podemos personalizar los colores a nuestro gusto:

Parametros que podemos editar en el archivo php.ini para cambiar el color de salida.

highlight.string = #DD0000 (Color para las cadenas encerradas en comilla simple o doble comillas).

highlight.comment = #FF9900 (Color para los comentarios en el código).

highlight.keyword = #007700 (Color para algunas de las palabras claves del lenguaje como son if, else, for, while).

highlight.bg = #FFFFFF (Color para el fondo).

highlight.default = #0000BB (Color para lo que queda fuera de las demas categorías).

highlight.html = #000000 ->Negro (Color para lo que esta fuera de las etiquetas <?php ?> como código html o javascript).

  • 2- PHP_Highlight: Clase PHP que, como las funciones mencionas anteriormente, solo sirve para resaltar código PHP. Nos ofrece una salida en XHTML valido y crea además enlaces referenciales de las diferentes funciones PHP apuntando al manual online del mismo.
    También brinda tres formatos de salida (array, lista ordenada, y html puro)

Ejemplo de uso:

<?php
 require_once 'PHP_Highlight.php';

 $h = new PHP_Highlight;
 $h->loadFile('file.php');

 // Salida en formato Array
 echo "<h3>En forma de Array</h3>";
 echo "<pre>";
 print_r($h->toArray());
 echo "</pre>";

 // Salida en formato de Lista Ordenada
 echo "<h3>Lista Ordenada</h3>";
 $h->toList(false);

 // Salida en formato html
 echo "<h3>En HTML basico</h3>";
 $h->toHtml(false);

?>

Si queremos personalizar los colores de salida podemos agregar la siguiente linea y adjuntar una hoja de estilos CSS con los colores que deseamos.

<?php
 require_once 'PHP_Highlight.php';

 $h = new PHP_Highlight;

//Esta línea nos ofrecera la posibilidad de personalizar los colores.
 $h->PHP_Highlight (true);

 $h->loadFile('file.php');

/* y lo que sigue */

?>

La hoja de estilos tendría que ser mas o menos así, poniendo el color en hexadecimal que queremos:

.bg {
   color: #000000;
}
.string {
   color: #000000;
}
.keyword {
   color: #000000;
}
.comment {
   color: #000000;
}
.html {
   color: #000000;
}
.default {
   color: #000000;
}

La librería PHP_Highlight depende de un archivo llamado T.php, que es parte del paquete de PEAR PHP_Compat.

  • 3- Generic Syntax Highlighter: Más conocida como GeSHi, es sin dudas la herramienta más completa escrita en PHP para resaltar código; a diferencia de las dos formas anteriores GeSHi soporta mas de 50 lenguajes, entre ellos PHP, HTML, CSS, Java, C, Lisp, XML, Perl, Python y muchos otros.

Ejemplo Basico de uso:

<?php 

include_once('geshi.php');

// Definiendo un poco de código para resaltar

$source = '$foo = 45;
for ( $i = 1; $i < $foo; $i++ )
{
  echo "$foo<br />n";
  --$foo;
}';

$language = 'php';

$geshi =& new GeSHi($source, $language);

echo $geshi->parse_code();

?>

Por ahora esto es todo para esta primera parte, en la segunda voy a profundizar más en los métodos y formas de trabajar y configurar GeSHi. También, en la segunda parte voy a escribir sobre unas cuantas opciones más, algunas para resaltar el código del lado del cliente y también sobre alguna que otra aplicación para hacer lo mismo pero desde el escritorio.

Espero que sea útil, un saludo grande!

delicious technorati google my web yahoo
4 comments.

adrian

Comment on Mayo 22nd, 2007.

para mi la mejor libreria para resaltar codigo es esta, que vengo usando desde hace 2 años y esta buenisima:
http://code.google.com/p/syntaxhighlighter/

tambien hay un plugin para wordpress:
http://erik.range-it.de/wordpress/plugins/syntaxhighlighter/

saludos!

artux

Comment on Mayo 22nd, 2007.

adrian, si es una de las mejores, tenia pensado hablar de syntaxhighlighter en la segunda parte.

gracias por el aporte, un saludo!

Seuss

Comment on Marzo 19th, 2008.

hola artux me estoy interesado en saber mas acerca de GeSHi porque quiero resaltar codigo HTML y mas… asi que si puedes por favor escribe mas acerca de eso gracias

Carlos Leopoldo

Comment on Junio 27th, 2008.

Yo después de buscar y probar muchos opté por crear mi propio plugin usando Chili que es una fantastica librería de jQuery: aquí te dejo el enlace de cómo logré resaltar automaticamente el código PHP, CSS, HTML, etc.

Luego lo publicaré para que lo puedan descargar.

Deja tu Comentario

Comments can contain some xhtml. Names and emails are required (emails aren't displayed), url's are optional.