Insérer automatiquement des données dans un fichier reStructuredText¶
Supposons que vous deviez présenter 3 produits, Dianthus, Geum et Prunus, chacun déclinés dans trois versions 1.0, 1.5 et 2.3.
Plutôt que d’écrire les données à la main dans le fichier de contenu, vous pouvez les insérer automatiquement grâce à Jinja et Python.
Créez le fichier
modele.rst
suivant :Produits et versions ==================== {% for prod in product %} {{ prod | capitalize }} {% for c in prod %}-{% endfor %} {% for ver in version %} - {{ ver }} {% endfor %} {% endfor %}
Créez le script Python
populate.py
suivant :#!/usr/bin/python # coding: utf8 import jinja2 env = jinja2.Environment(loader=jinja2.FileSystemLoader('./')) template = env.get_template('modele.rst') data = { 'product': ['dianthus', 'geum', 'prunus'], 'version': ['1.0', '1.5', '2.3'] } print(template.render(data))
Rendez le script exécutable, puis exécutez-le :
$ chmod +x populate.py $ ./populate.py
Le contenu suivant s’affiche :
Produits et versions ==================== Dianthus -------- - 1.0 - 1.5 - 2.3 Geum ---- - 1.0 - 1.5 - 2.3 Prunus ------ - 1.0 - 1.5 - 2.3
Vous minimisez ainsi le risque d’erreurs et l’effort de mise à jour.