Aller au contenu principal

Tags de mise en page

Contrôlez l'espacement et le positionnement horizontal dans n'importe quel élément de texte (p, th, td, h1h5).

Saut de ligne

Insérez un saut de ligne au sein d'un paragraphe sans créer un nouvel élément de contenu.

{ "p": "Ligne un[br]Ligne deux[br]Ligne trois" }

Forme longue : [linebreak]

Sauts de ligne multiples

Ajoutez un nombre pour insérer plusieurs sauts de ligne à la fois :

{ "p": "Contenu au-dessus[br, 3]Contenu en dessous avec 3 lignes vides entre" }

Exemple : bloc d'adresse

{ "p": "Meridian Financial Group[br]45 Bay Street, Suite 1200[br]Toronto, ON M5J 2X5[br]Canada" }

Taquet de tabulation

Positionnez le texte à un décalage horizontal spécifique à partir de la marge gauche. Le paramètre tiers optionnel contrôle comment le texte s'aligne au taquet de tabulation.

{ "p": "Libellé[tab, 200]Valeur" }
{ "p": "Libellé[tab, 200, 1]Valeur alignée à droite" }
ParamètreDescription
Premier (POS)Décalage horizontal en points à partir de la marge gauche où se situe le taquet de tabulation.
Deuxième (ALIGN, optionnel)Comment le texte suivant s'aligne au taquet de tabulation : 0 = gauche (par défaut), 1 = droite, 2 = centre.

L'alignement à droite est ce qu'il vous faut pour les pieds de page « page X sur Y » et les colonnes de montants alignées à droite — le texte se termine à la position de tabulation plutôt que de commencer là.

Exemple : paires libellé-valeur

{ "p": "Numéro de facture[tab, 200]INV-2026-0042" }
{ "p": "Date[tab, 200]15 avril 2026" }
{ "p": "Montant dû[tab, 200]24 500,00 $" }

Exemple : en-tête à trois colonnes avec date alignée à droite

{ "p": "Meridian Financial Group[tab, 250]Rapport annuel de conformité[tab, 495, 1]Avril 2026" }

Ceci place le nom de l'entreprise à gauche, le titre du rapport au milieu commençant au point 250, et la date alignée à droite avec son bord arrière au point 495. L'alignement à droite garde la date épinglée à la marge droite même quand la chaîne de caractères de la date change de largeur.

Exemple : reçu à deux colonnes avec montants alignés à droite

{
"content": [
{ "p": "[b]Article[/b][tab, 350, 1][b]Prix[/b]" },
{ "p": "Consultation (40 heures)[tab, 350, 1]6 000,00 $" },
{ "p": "Développement (80 heures)[tab, 350, 1]16 000,00 $" },
{ "p": "Configuration de l'infrastructure[tab, 350, 1]2 500,00 $" },
{ "hr": { "borderStyle": "solid", "height": 0.5, "color": "#000000" } },
{ "p": "[b]Total[/b][tab, 350, 1][b]24 500,00 $[/b]" }
]
}
Les tables sans bordures se mettent à l'échelle mieux

Quand la mise en page importe plus que la position exacte en pixels — par exemple les régions d'en-tête/pied de page qui doivent s'adapter aux changements de taille de page ou de marge — préférez un bloc table ou columns sans bordure plutôt que les taquets [tab, POS] absolus. Les tabulations se lient à des points absolus et se cassent quand la largeur de page change ; les tables décrivent les proportions et se reflètent automatiquement.

Pour le cas le plus courant — « partager la largeur de cette ligne entre N éléments » — voir [col] ci-dessous. Cela fait le calcul pour vous par rapport à la largeur actuelle du conteneur, donc les auteurs n'ont pas besoin de calculer les points.

Fractionnements de colonnes

Pas la même chose que le colspan d'HTML

[col, N] fractionne un paragraphe en N segments horizontaux pondérés — une ligne de type Bootstrap à l'intérieur du texte du corps. Utilisez-le pour mettre en page les lignes d'en-tête, les paires libellé/valeur, les reçus à deux colonnes. colspan (dans une cellule de table) est l'inverse — il fusionne plusieurs colonnes de table en une seule cellule. Voir Tableaux. Les deux se composent librement — une cellule colspan: 4 peut héberger [col, 3][col, 1] à l'intérieur, fractionnant son intérieur en segments libellé / statut. L'exemple edge-case-gallery dans Tableaux §11 montre ceci dans un rendu.

Fractionnez un paragraphe en segments distribués uniformément (ou pondérés) sans calculer les positions en points. [col]…[/col] est l'ergonomie du partage de ligne — la plupart des utilisations de [tab, POS] pour mettre en page les lignes d'en-tête, les paires libellé/valeur, ou les reçus à deux colonnes s'effondrent en une ou deux paires [col].

{ "p": "[col]Facture #2026-001[/col][col]Date 2026-05-21[/col]" }

Le moteur lit la largeur de contenu du conteneur actuel (largeur de page moins marges), compte les paires [col] dans le paragraphe, et place automatiquement les taquets de tabulation. Le dernier segment s'aligne toujours à droite jusqu'au bord droit — exactement ce que les lignes d'en-tête et les modèles de pied de page « Page X sur Y » veulent.

Fractionnements égaux vs pondérés

Les segments [col] simples se fractionnent uniformément. Pour allouer la largeur de manière inégale, ajoutez un poids entier en tant que paramètre — le même modèle de poids relatif que table.widths. Les poids sont normalisés sur tous les segments, donc [col, 6][col, 6] et [col, 1][col, 1] produisent une sortie identique.

{ "p": "[col, 3]Étroit[/col][col, 6]Segment du milieu large[/col][col, 3]Étroit[/col]" }

C'est une mise en page 1:2:1 — le segment du milieu reçoit deux fois la largeur des deux segments latéraux. Les valeurs de poids sont sans unité ; choisissez ce qui totalise intuitivement (4:4:4 pour les tiers, 6:6 pour les moitiés, 8:4 pour deux tiers + un tiers, etc.).

ParamètreDescription
Premier (N, optionnel)Poids entier ≥ 1 pour ce segment. Par défaut à 1. Les valeurs non-positives ou non-numériques reviennent à 1.

Exemple : en-tête de marque avec contact aligné à droite

{ "p": "[col][b]Meridian Financial[/b][/col][col]contact@meridian.example · +1 (416) 555-0140[/col]" }

Deux segments → un taquet à droite → la ligne de contact s'aligne à droite tandis que la marque reste à gauche.

Exemple : ligne à trois segments (gauche / titre centré / page alignée à droite)

{ "p": "[col]Acme Inc.[/col][col]Rapport Q2 des ventes[/col][col]Page 1 sur 3[/col]" }

Exemple : étiquettes asymétriques (grille 12 de style Bootstrap)

{ "p": "[col, 8][b]Résumé des revenus Q2[/b][/col][col, 4][i]Année fiscale 2026[/i][/col]" }

Les poids totalisant 12 se lisent comme une ligne Bootstrap, mais le moteur n'en impose pas une base — n'importe quels totaux fonctionnent. [col, 2] et [col, 1] ensemble produisent le même fractionnement 2/3 + 1/3 que [col, 8] et [col, 4].

Les shortcodes se composent à l'intérieur des segments

Chaque segment accepte le vocabulaire Shortcode complet — gras, italique, couleur, police, liens, champs, etc. — tout comme le paragraphe environnant :

{ "p": "[col][b]Acme Inc.[/b][/col][col][i]Confidentiel[/i][/col][col][color, #0066cc]contact@acme.com[/color][/col]" }

Comportement et compromis

Quelques points tranchants à connaître :

  • Le texte en dehors de [col]…[/col] est absorbé dans le segment adjacent. Dans Foo [col]A[/col][col]B[/col], « Foo » fusionne avec la position gauche du segment 1 ; dans [col]A[/col] middle [col]B[/col], « middle » fusionne avec le segment 1. Placez tout le contenu de ligne à l'intérieur des paires [col] pour une mise en page prévisible.
  • Pour les lignes à deux segments, les poids sont visuellement invisibles. Le dernier segment s'aligne toujours à droite, donc [col, 8][col, 4] et [col, 1][col, 1] produisent une sortie identique. Si vous avez vraiment besoin d'une ligne à deux colonnes asymétrique (par ex. 70% / 30%), optez pour une table sans bordure avec "widths": [7, 3].
  • Un [col, N][/col] vide réserve toujours son emplacement pondéré. Utile pour les espaces intentionnels sans casser l'alignement adjacent.
Quand utiliser [col] vs [tab, POS] vs une table
  • [col] — le choix quotidien pour le partage de ligne au sein d'un seul paragraphe. Utilisez-le pour les lignes d'en-tête, les lignes de pied de page, les paires libellé/valeur, et tout modèle « gauche / milieu / droite ».
  • [tab, POS] — uniquement quand vous avez besoin d'un décalage absolu spécifique (en points) qui ne dépend pas de la largeur du conteneur. Rare en pratique ; optez pour lui lors de la migration de fixtures héritées ou quand le contenu doit atterrir à une position de règle exacte.
  • table sans bordure — quand chaque « colonne » contient plusieurs éléments empilés (libellé + valeur + sous-libellé tous dans la colonne 1, etc.), ou quand le contenu s'étend sur plusieurs lignes. [col] est un outil de paragraphe unique ; les tables sont pour les grilles.