Chapitre 12Éditer
L'expérience d'édition
Ce que le client voit, geste par geste — et les règles de vocabulaire qui font qu'il n'a jamais l'impression d'utiliser un outil de développeur.
Tout ce chapitre est reproduit dans le simulateur : clé, overlay, édition, publication, conflit. Rien n'y est écrit nulle part.
Entrer
Le client reçoit une adresse et une clé. Rien d'autre : pas de compte, pas de logiciel, pas de tableau de bord.
-
Il ouvre
monsite.fr/adminUne page d'un seul champ. Elle porte
noindex: elle n'a rien à faire dans un moteur. -
Il saisit la clé
Elle part vers
/api/auth, et nulle part ailleurs. En cas d'erreur, le message est toujours le même — « clé incorrecte » — quelle que soit la cause. -
Il arrive sur son site
Pas sur un panneau d'administration : sur sa page d'accueil, avec une barre en bas. Il navigue avec son propre menu, comme un visiteur.
La session dure 8 heures. Au-delà, la publication est refusée et l'overlay propose de ressaisir la clé — sans perdre les modifications en cours.
La barre
Elle tient en une ligne, en bas de l'écran, et ne contient que l'indispensable :
| Élément | Rôle |
|---|---|
| L'état | « modifications non publiées » ou « à jour ». |
| Les langues | De vrais liens vers la même page dans les autres langues. |
| Le reste à traduire | « 2 textes restent à traduire sur cette page », s'il y en a. |
| Annuler mes modifications | Revient à la dernière version publiée. Avec confirmation. |
| Publier | Le seul bouton d'action. |
| Aide | Vers /aide. |
Modifier un texte
Le client clique sur le texte. Il devient modifiable sur place, comme dans un traitement de texte, et une petite barre apparaît au-dessus.
Champ texte
Cinq réglages
Taille, épaisseur, italique, alignement, couleurs de la charte. Ses boutons sont construits à partir de la même liste que celle dont le schéma tire ses enums : un bouton hors liste est impossible.
Champ richtext
Quatre commandes
Gras, italique, lien, listes. Rien d'autre : ce sont exactement les balises que l'assainissement laisse passer.
Au collage, la mise en forme d'origine est écrasée sans exception. Un paragraphe venu d'un traitement de texte arrive avec ses polices, ses tailles en points et ses couleurs ; il ne reste que le texte, le gras et l'italique.
Changer une image
Un clic sur l'image ouvre un panneau : choisir un fichier sur l'appareil, et un seul champ en dessous, « Description de l'image », prérempli quand le nom du fichier veut dire quelque chose.
Le client n'a jamais à redimensionner ni à convertir. Une photo de 8 Mo en 4032 × 3024 sortie d'un téléphone est le cas nominal : recadrage au ratio attendu, réduction, conversion, dimensions calculées. Voir Images et vidéos.
Ajouter une vidéo
Un champ où coller un lien. La barre d'adresse, le bouton « Partager », le code d'intégration collé en entier : toutes les formes fonctionnent. Aucun fichier vidéo n'est jamais téléversé, et ce n'est pas une limitation à contourner.
Les listes
Au survol d'un élément de liste, quatre actions apparaissent, plus un bouton « Ajouter » sous la liste.
| Action | Ce qui se passe |
|---|---|
| Ajouter | Clone le modèle d'item de la page — même structure qu'un élément construit. |
| Dupliquer | Copie l'élément, avec un identifiant neuf, jamais réutilisé. |
| Monter / Descendre | Change l'ordre. Pas de glisser-déposer : c'est assumé. |
| Supprimer | Demande confirmation, en rappelant que les versions précédentes sont conservées. |
Le brouillon local
Les modifications sont enregistrées en continu dans le navigateur. Si le client ferme l'onglet, éteint son ordinateur ou revient trois jours plus tard, un bandeau lui propose de reprendre là où il s'était arrêté.
Le brouillon est attaché à la page et à la langue. Il est effacé après une publication réussie, ou par « Annuler mes modifications ».
Publier
Le message affiché annonce une minute environ. C'est le délai réel de reconstruction, et le dire évite l'appel téléphonique dix secondes après.
Ce qui peut aller de travers, et ce que le client lit
| Situation | Message |
|---|---|
| Quelqu'un a publié entre-temps | « Quelqu'un d'autre a publié pendant que vous travailliez. Rechargez la page : vos modifications sont conservées. » |
| Session expirée | Invitation à ressaisir la clé, sans perdre le brouillon. |
| Trop de demandes coup sur coup | « Patientez quelques minutes, puis réessayez. » |
| Le service ne répond pas | « Cette modification n'a pas pu être enregistrée, réessayez. » |
| Petit écran | « La modification du contenu nécessite un ordinateur. » |
Ni code HTTP, ni message d'API, ni nom de fichier, ni identifiant de version. Le détail va dans la console du navigateur et dans les journaux serveur — jamais devant le client.
Le vocabulaire
C'est une contrainte de développement, pas une préférence de rédaction : le client ne verra jamais le code, et un seul mot technique suffit à lui faire croire qu'il peut casser quelque chose.
| On écrit | Jamais |
|---|---|
| Publier | Commit, push, déployer |
| Description de l'image | alt, attribut alt |
| Annuler mes modifications | Revert, reset, rollback |
| Quelqu'un d'autre a publié entre-temps | Conflit de SHA, 409 |
| Le site sera à jour dans une minute | Rebuild, pipeline, CI |
| Cette modification n'a pas pu être enregistrée | Erreur 502, API GitHub indisponible |
Le mot Git, le SHA, le JSON et le nom du dépôt ne doivent apparaître nulle part à l'écran.
Ce que le client ne peut pas faire
- Déplacer ou créer un bloc, changer la mise en page.
- Choisir une couleur ou une taille hors de sa charte.
- Modifier la navigation, les mentions, les coordonnées (
site.json). - Créer ou supprimer une page.
- Téléverser une vidéo, un PDF, un fichier quelconque.
- Voir l'arborescence du contenu — il n'y en a pas.
Ces limites sont la frontière annoncée à la livraison : le contenu au client, la structure au développeur. Elles sont appliquées par le code, pas seulement dites.
Ce que coûte l'overlay
| Situation | JavaScript chargé |
|---|---|
| Visiteur ordinaire | ~175 octets en ligne : une lecture de cookie, rien d'autre. |
| Client authentifié | L'overlay, sous 50 Ko une fois découpé. |
| Collage de texte riche | + l'assainisseur, chargé à ce moment-là. |
| Photo HEIC déposée | + le décodeur, 1,4 Mo, seulement dans ce cas. |
Le découpage n'est pas cosmétique : sans lui, l'overlay dépasse largement son budget, et le décodeur d'images d'iPhone partirait chez tous les clients qui n'en ont pas besoin.
La page d'aide
/aide est fournie clé en main par le paquet, habillée par la charte du site. Elle
reprend les mêmes gestes en texte, avec l'adresse de contact configurée à l'installation. Un
site qui veut la sienne passe pages: { help: false } à l'intégration et fournit
src/pages/aide.astro.
Ce qui protège tout cela : Sécurité et authentification.