Ajoute une largeur maximale optionnelle aux blocs de texte (titre/paragraphe)

Nouvel attribut max_width (vide par défaut = pleine largeur, inchangé)
sur les kinds titre/paragraphe, réglable depuis leur panneau
Propriétés. Le sous-titre de la page de garde du thème Sécurité
Incendie l'utilise (60ch) pour rester conforme à la maquette d'origine,
qui ne l'étirait pas sur toute la largeur de la page.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-24 10:39:18 +02:00
co-authored by Claude Sonnet 5
parent 746feb3796
commit 1296edc2f8
8 changed files with 69 additions and 2 deletions
@@ -59,6 +59,14 @@ def _render_text(el: dict[str, Any], _children_by_parent: dict[int | None, list[
f"font-size:{font_size}; font-weight:{weight}; line-height:{line_height}; "
f"font-style:{font_style}; text-decoration:{text_decoration}; text-align:{align}; color:{color};"
)
# max_width optionnel (ex. "60ch", "480px") — vide par défaut (pleine
# largeur de .docPageContent, comportement inchangé). Retour
# utilisateur du 24/09/2026 : un paragraphe doit pouvoir rester plus
# étroit que la page, comme un sous-titre sous un grand titre, sans
# dépendre d'une rangée (qui partagerait la largeur avec un frère).
max_width = str(a.get("max_width", "")).strip()
if max_width:
style += f" max-width:{html_lib.escape(max_width)};"
return f'<div class="docText" data-element-id="{el["id"]}" data-kind="{el["kind"]}" style="{style}">{content}</div>'
+5
View File
@@ -30,6 +30,11 @@ regroupement à chaque appel.
récursivement.
- **Texte** (`titre`/`paragraphe`) : `<div>` stylé selon `style` (préréglage
taille/graisse/interligne) et `bold`/`italic`/`underline`/`align`/`color`.
`max_width` (optionnel, ex. `"60ch"`, `"480px"`) ajoute `max-width` au
style inline quand non vide — pleine largeur de `.docPageContent` par
défaut, retour utilisateur du 24/09/2026 (un paragraphe doit pouvoir
rester plus étroit que la page, sans dépendre d'une rangée qui en
partagerait la largeur avec un frère).
- **Image** : `<img>`, ou un bloc placeholder si `src` est vide — OU, si
`attributes["svg_markup"]` est non vide (prioritaire sur `src`), un
`<div>` portant directement ce fragment SVG nettoyé par