Créer des documents différents à partir des mêmes sources via Jinja

Le script Python profiling.py ci-dessous permet de profiler du contenu en preprocessing à l’aide du puissant moteur de modèle Jinja :

#!/usr/bin/python
import jinja2
import sys
reload(sys)
sys.setdefaultencoding('utf8')

public=str(sys.argv[1])
env = jinja2.Environment(loader=jinja2.FileSystemLoader('./'))
template = env.get_template('texte-conditionnel.rst')
string=template.render(audience=public)

file = open('texte-conditionnel.rst','w')
file.write(string)
file.close()

Contenu du fichier texte-conditionnel.rst :

Utilisation du texte conditionnel
=================================

{% if audience=='electrician' %}

.. admonition:: Danger pour les électriciens

   Risque d'électrocution

   Ne touchez pas les fils électriques.

{% else %}

.. admonition:: Danger pour les plombiers

   Risque de noyade

   Ne plongez pas dans la piscine.

{% endif %}

Utilisation :

$ ./profiling.py electrician

Il suffit maintenant d’appeler le script avant compilation via Sphinx dans le Makefile.