viernes, 18 de diciembre de 2009

Coloreando Python en blogs y html

Algo que me hizo renegar bastante hace poco, fueron mis ganas de que el código de ejemplo en python que posteaba en el blog tuviese coloreo de sintaxis.

Pasé por varias opciones, y por lejos esta fue la que me resultó más práctica para usar en blogspot o cualquier otro sistema de blogs que permita editar el html del blog. Su practicidad se debe sobre todo a que no necesito hostear archivos extras en ningún lado.

Armé un instructivo bastante sencillo de cómo lograrlo:


1) Instalar Pygments

Vamos a generar un html localmente a partir de un archivo de python, usando el paquete Pygments. Para instalarlo, podemos hacerlo con easy_install (paquete "pygments"), buscándolo y bajándolo de PyPi, o bajando sus fuentes (más info aquí):


2) Generar el HTML con Pygments

Teniendo instalado Pygments, podemos usarlo para generar un HTML coloreado a partir de un archivo de código python. No voy a explicar todas las alternativas, solo la que a mí me resulta práctica (para más info, vean aquí):


$ pygmentize -O noclasses -o pagina.html codigo.py 

Nos copiamos el contenido del html generado, lo ponemos dentro de nuestro post, y voila! Python coloreado en nuestro blog :D. Les dejo un ejemplito:



import antigravity 

print "wee, python!"

class Foo:
"""Foo fighters"""
def __init__(self):
self.bar = "donde sirven cerveza"

def baz(self):
"""Vamos al bazaar"""
print self.bar


Espero que les haya sido útil!

4 comentarios:

  1. El problema de este enfoque es: qué pasa si después de postear querés cambiar el código python?

    1) Editarlo a mano es muy engorroso.
    2) Tenés que guardarte el .py original para generar el html.

    ResponderEliminar
  2. @Juanjo con
    1) tenes razón, editarlo a mano es engorroso, pero con
    2) no es necesario guardar el original, solo tenés que hacer un copy&paste de lo que ya tenías escrito

    Por el resto me parece muy útil el tip de pygmentize

    ResponderEliminar
  3. Me refería a que tenés que guardarte el .py original si querés modificarlo y regenerar el html.

    ResponderEliminar
  4. Como dijo PaBluK, no es necesario quedarte con el .py original. Te copias del blog el código y lo pegas en un nuevo archivo .py, y listo. :D

    (lo copias desde la página del blog, no del html)

    ResponderEliminar