Jugando con highlight


Desde que poseo el blog, siempre he tenido la curiosidad de como ponerle color al código fuente de un script. Normalmente uno modifica la hoja de estilo del blog, que si en Wordpress puedes usar un plugin  ,que si en Blogger se hace modificando la plantilla, que usando páginas online . Sin embargo siempre he querido hacerlo pero desde la interfaz de comandos de Linux. En su momento he puesto color a código en Perl, a modo de pruebas.

Hasta que me tope con highlight , un paquete que transforma código fuente para ser visualizado en Htm y de ser requerido  en SVG o incluso Latex. Revisando , aparece en los repo de Archlinux,  Fedora y de Debian.

Salió un script
Después de probarlo, me di cuenta que no toma bien los saltos de línea así que me salio su scriptcito.


#!/bin/bash

if [[ ! -n "$1" ]];
then
echo "Nombre de archivo no ingresado"
exit
fi

if [[ ! -f "$1" ]];
then
echo "Ese archivo no existe o se perdió"
exit
fi

highlight -f --inline-css -i $1 > temp
sed '{:q;N;s/\n/<br \/>/g;t q}' temp
rm temp

#Fin de Script

Al usarse highlight sin más parámetros que el archivo en cuestión, genera el código fuente de una página, como mi caso es apenas tomar el código que pinta el código, le paso el parámetro -f para quitarle los tags head y body en HTML; asi como el parámetro --inline-css para que ponga etiquetas en cada linea. Pero no interpreta bien los saltos de línea, así que los añadí vía el comando 'sed'.

Se puede imaginar que el código que arriba cito, lo llame colorear.sh y para ver si funciona lo invoque así ./colorear.sh colorear.sh

Actualización: En caso de requerirlo, también esta en este enlace https://gist.github.com/angelbladex/7102907

0 comentarios:

Publicar un comentario