Créer des documents différents à partir des mêmes sources via Jinja
Profilez du contenu reStructuredText avec Jinja et Python en prétraitement pour générer des variantes de documents spécifiques au public depuis une source unique.
Objectif
Section intitulée « Objectif »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/env python3import jinja2import sys
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-sortie.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 electricianIl suffit maintenant d’appeler le script avant compilation via Sphinx dans le Makefile.