Evidenziare il codice sorgente colorandolo
Per colorare il codice sorgente (Syntax Highlighting) del post precedente ho utilizzato la libreria Pygments. Uno snippet efficace per creare un filtro da usare nel template che visualizza i post รจ Markdown and Syntax Highlighting in Django.
Si crea una directory templatetags all'interno dell'applicazione django che ci interessa e, all'interno di questa directory, si crea un file _ _init_ _.py in modo da rendere la directory un modulo python.
./weblog/ |-- __init__.py |-- admin.py |-- models.py |-- templatetags | |-- __init__.py | |-- markdownandpygment.py |-- views.py
Il file markdownandpygment.py contiene il codice dello snippet Markdown and Syntax Highlighting in Django con qualche correzione per fare in modo che l'import dei moduli necessari vada a buon fine. Il template corrispondente utilizza il nuovo tag grazie ad un paio di aggiunte:
{% load markdownandpygment %} {% block extra_styles %} <link rel="stylesheet" href="/media/css/pygmentize.css" type="text/css" media="screen" /> {% endblock %} ... {{post.body|render|safe}} ...
ed infine ho creato il CSS con le definizioni delle classi usate da pygment con il comando:
pygmentize -S default -f html > pygmentize.css