Aller au contenu

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.

  1. 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 %}
  2. 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))
  3. Rendez le script exécutable, puis exécutez-le :

    Terminal window
    $ 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.

Voir aussi