{#- Éditeur de texte partagé (Lettre, Règles, CV libre, CV de base). À importer : {% from "_editeur.html" import editeur, champ_valeur, conflit %} Noms de champs (plan §2.10) : `valeur` (le texte édité), `empreinte` (celle du texte lu), et, pour les réécritures, `portee`, `debut`, `fin`, `texte`, `consigne`. Ids : `#formulaire-` (le formulaire, cible de l'enregistrement), `#editeur-` (la zone du bandeau IA et du champ, cible des propositions : bandeau, barre de décision et champ y sont échangés ensemble), `#valeur-` (le champ), `#etat-` (zone d'état : cible de toutes les erreurs, jamais le champ). Aucune de ces macros ne lit le contexte de la page : tout passe par les arguments. -#} {% from "_composants.html" import zone_etat, vie_privee, attributs_brouillon, barre_enregistrement %} {#- Le champ seul. `oob` : réponse qui remplace le champ du brouillon à la place (`hx-swap-oob`) ; il faut alors redonner les mêmes `selection`, `mono`, `auto` et `attributs` que l'éditeur, sinon ils sont perdus par le remplacement. `attributs` : dict d'attributs en plus. `auto` : hauteur ajustée au contenu par l'îlot. `cache` : champ masqué (`hidden`), qui garde le brouillon pendant qu'une proposition s'affiche à sa place. Le retour à la ligne qui suit ` {%- endmacro %} {#- Éditeur complet d'un fichier texte : zone du bandeau IA et du champ, empreinte cachée, barre d'enregistrement. `enregistrer` : URL du POST ; `message` : texte de la zone d'état (« ✓ Version 2, enregistrée à l'instant ») ; `controles` : HTML en plus, posé dans le formulaire sous le champ ; `brouillon` : formulaire suivi par l'îlot (`form[data-brouillon]`, garde de sortie) ; `modifie` : le brouillon diffère du fichier (`data-modifie="1"`) ; `auto` : champ à hauteur automatique, présenté comme une page ; `barre` : boutons de `barre_enregistrement` (`enregistrer`, `annuler`, `telecharger`, `proposition_en_attente`...), la barre remplace alors le pied simple (Enregistrer + zone d'état) ; `objet` : de quoi parle la garde de sortie (« La lettre ») ; `bandeau` : bandeau IA posé au-dessus du champ (`_bandeau_ia.html`). -#} {% macro editeur(zone, valeur, empreinte, enregistrer, libelle="Texte", message="", selection=False, mono=False, lignes=18, attributs_champ=None, controles="", bouton="Enregistrer", brouillon=False, modifie=False, auto=False, barre=None, bandeau="", objet="Le texte") -%}
{{ bandeau }}
{{ champ_valeur(zone, valeur, selection=selection, mono=mono, lignes=lignes, attributs=attributs_champ, auto=auto) }}
{{ controles }} {% if barre is not none %} {{ barre_enregistrement(zone, message, modifie, barre) }} {% else %}
{{ zone_etat(zone, message) }}
{% endif %}
{%- endmacro %} {#- Partie d'un 409 qui suit l'alerte : le contenu courant du fichier en lecture seule (jamais un champ : le brouillon de l'utilisateur n'est pas remplacé) et un lien pour recharger la page. -#} {% macro conflit(contenu) -%}

Contenu actuel du fichier (lecture seule) :

{{ contenu }}

Recharger la page (votre brouillon actuel sera perdu : copiez-le d'abord si besoin).

{%- endmacro %}