# FEATURE — “Proposer” (édition par paragraphe → issue Gitea) Dernière mise à jour : 2026-02-01 Cette feature permet à un lecteur de proposer une correction/amélioration d’un paragraphe, en générant une issue pré-remplie dans Gitea. --- ## 0) Objectif fonctionnel Depuis une page chapitre : 1) clic sur **Proposer** sur un paragraphe 2) choix #1 (type) 3) choix #2 (state/catégorie selon UI) 4) ouverture d’un seul onglet vers Gitea : `/issues/new?...` 5) issue pré-remplie avec : - chemin / URL / ancre - texte actuel (citation) - champs “Proposition / Justification” 6) l’utilisateur valide, et le runner/CI traite. --- ## 1) Dépendances de configuration (critique) Le lien Gitea est construit à partir de variables publiques injectées au build Astro : - `PUBLIC_GITEA_BASE` (ex: `https://gitea.archicratie.trans-hands.synology.me`) - `PUBLIC_GITEA_OWNER` (**casse sensible**, ex: `Archicratia`) - `PUBLIC_GITEA_REPO` (ex: `archicratie-edition`) ### Symptômes si mauvais - mauvais repo → 404 - redirect login inattendu - création d’issues impossible --- ## 2) Contrat “une seule ouverture d’onglet” Le flow ne doit jamais ouvrir deux onglets. ### Contrat - pas de `window.open(...)` - un seul `a.target="_blank"` (ou équivalent) déclenché - sur click : handler doit neutraliser les propagations parasites ## Diagnostic (canonique) Le diagnostic détaillé est centralisé dans `docs/TROUBLESHOOTING.md` pour éviter les doublons. - 404 / non autorisé / redirect login : - voir : `TROUBLESHOOTING.md#proposer-404` - cause la plus fréquente : `PUBLIC_GITEA_OWNER/REPO` faux (souvent casse) - Double onglet : - voir : `TROUBLESHOOTING.md#proposer-double-onglet` - cause la plus fréquente : double handler (bubbling) ou `window.open` + `a.click()`