Aller au contenu

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 :

Terminal window
$ ./profiling.py electrician

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