Aller au contenu

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.

, 1 min de lecture

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

  1. Créez le script profiling.py :

    #!/usr/bin/env python3
    import jinja2
    import 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()
  2. Créez le fichier de contenu 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 %}
  3. Exécutez le script en indiquant le public en paramètre :

    Fenêtre de terminal
    ./profiling.py electrician

    Le script écrit la version du contenu destinée à ce public dans texte-conditionnel-sortie.rst.

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