Como parte de las actualizaciones de los tutoriales de Perl en Español quería que el código de ejemplo que hay dentro de los tutoriales sea coloreado de una manera similar a como se hace aquí en el foro.
Lo primero que se me ocurrió fue usar algunas de las herramientas en línea para colorear el código Perl, como el No Paste que ya en algún momento lo use simplemente para que me mostrara el código coloreado y así copiar el código fuente y listo. El problema con esta opción es que es sumamente tedioso, y después se puede complicar demasiado al hacer cambios globales.
Después pensé en hacer un módulo para el Movable Type usando el módulo Syntax::Highlight::Perl, esta era una opción mucho más factible pero aun así no me convencía del todo.
Me puse a hacer unas búsquedas en Google y encontré un script de Google llamado Google Code Prettify, me gustó mucho la idea de colorear el código del lado del cliente para bajar la demanda al servidor, pero aunque estaba cerca de encontrar lo que quería, este pequeño Javascript coloreaba de manera muy básica el código Perl.
Finalmente encontré un Javascript en perlmonks.org que hizo uno de sus usuarios basándose en el módulo Syntax::Highlight::Perl y decidí usar ese, pero le faltaban algunas cosas y le hice algunos cambios:
- Cambié algunas de las expresiones regulares pues no vi la necesidad de ellas para mis propósitos.
- Agregué la modalidad para que aparte de colorear las funciones de Perl dentro del código, pusiera links a la documentación de Perl, similar a como se hace aquí en el foro.
- Al igual que con las funciones, también el script pone links en cualquier módulo que se use dentro del código a la documentación en CPAN.
Ya teniendo el script todo lo que tengo que hacer es poner el código que quiero colorear en mi documento dentro de campos de tipo pre con una clase específica, en este caso la puse para que fuera perlCode:
Entonces al ejecutarse el script buscará todos los pres de clase perlCode en el documento y lo coloreará.
Si quieren descargar para ver o usar el código lo pueden hacer desde la siguiente liga:
http://perlenespanol.com/PerlColorer.js
Saludos