# Créer des documents différents à partir des mêmes sources via Jinja

> **Note: Technique spécialisée**
>
> Ce didacticiel applique le texte conditionnel (profilage) au moment de la génération à une chaîne reStructuredText, au moyen d'un script Python de prétraitement. Le principe, générer plusieurs variantes d'un document à partir d'une source unique, vaut pour d'autres formats ; pour l'équivalent DITA XML, voir le [cas concret NuFirewall](https://docs.redaction-technique.org/fr/formats/nufirewall-case-study/).

## Objectif

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

```python
#!/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() 
```

Contenu du fichier `texte-conditionnel.rst` :

```txt
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 :

```console
$ ./profiling.py electrician
```

Il suffit maintenant d'appeler le script avant compilation *via* Sphinx dans le `Makefile`.

## Articles connexes

- [Insérer automatiquement des données dans un fichier reStructuredText](https://docs.redaction-technique.org/fr/tutorials/auto-insert-data-restructuredtext/)
- [Expressions régulières en Python](https://docs.redaction-technique.org/fr/tutorials/python-regular-expressions/)
- [sed : modifiez votre texte sans ouvrir vos fichiers](https://docs.redaction-technique.org/fr/tutorials/sed-text-editing/)

---

Source: https://docs.redaction-technique.org/fr/tutorials/conditional-text-jinja/
