claude/compassionate-wing-ab5974 #67

Merged
nicolas merged 3 commits from claude/compassionate-wing-ab5974 into main 2026-05-16 12:57:25 +02:00
Owner
No description provided.
- Paragraphes dans les sections 'decision' désormais numérotés (1)(2)(3)…
  comme les sections body (isBodySection étendu)
- Détection automatique 'Article N' dans les sections decision →
  paragraphe centré italique (sans numérotage)
- Sections cover : paragraphes alignés à droite par défaut ;
  textes entre parenthèses (e.g. '(Text with EEA relevance)') centrés
- Sections recital : alignement gauche (pas justifié) pour
  'Having regard to…', 'Whereas:'
- Style EU Commission : headings supprimés pour les sections
  cover et recital (elles n'ont pas de numéro de section dans
  la vraie décision CE)
- TOC EU Commission : les sections cover et recital sont
  exclues de la table des matières
Refactoring majeur de l'export DOCX pour le style eu_commission :
- Nouveau fichier server/lib/docxTemplate.js définissant les IDs de styles
  CE* (CEH1, CEH2, CEH3, CEH4, CEBody, CENum, CEArt, CECov, CECovC,
  CERec, CETOC1, CETOC2) et les définitions de styles programmatiques
  de fallback, ainsi que le chargement optionnel d'un .dotx via EU_DOTX_PATH.
- inlineToDocx() : paramètre semantic=false — quand true, supprime font/size/color
  des TextRun (le style nommé du paragraphe les fournit).
- nodeToDocx() : utilise les styles nommés CE* pour tous les types de paragraphes
  EU Commission (cover, recital, decision, body, numbered, headings).
- Boucle sections : headings EU utilisent CE.H1–H4 sans formatage inline.
- TOC : entrées EU utilisent CE.TOC1/CE.TOC2.
- Document() : spread de getEuStyleOptions() pour injecter externalStyles ou
  styles.paragraphStyles selon la config.
- Ajout de jszip en dépendance (optionnel, pour lire les .dotx directement).
- Tous les autres styles (corporate, legal, minimal, academic) conservent
  leur comportement inline existant.
- server/lib/styleSlots.js : 27 slots sémantiques (titres H1-H4, paragraphes,
  couverture, décision, annexes, figures, tableaux, TOC, footnotes)
- server/routes/admin.js : API admin (GET/POST/DELETE /admin/styles,
  POST .../dotx, PUT .../mapping, GET /admin/slots) — guard isLegal,
  extraction JSZip des styles paragraph+table depuis word/styles.xml
- server/db.js : table import_styles + 6 fonctions CRUD
- server/index.js : mount api.use('/admin', adminRouter)
- client/components/Admin.jsx : shell admin avec onglets (Styles / Users)
- client/components/AdminStyles.jsx : liste des styles, formulaire de
  création, upload dotx drag&drop, auto-match des slots, UI de mapping
  slot → style Word, barre de validation
- client/App.jsx : détection de la route /admin → rendu <Admin />
- client/components/DocumentList.jsx : lien ⚙ admin pour les Legal users
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/docforge_ynh!67
No description provided.