Configuration de l’éditeur de texte enrichi pour l’éditeur universel configure-rte
Découvrez comment configurer l’éditeur de texte enrichi dans l’éditeur universel.
Vue d’ensemble overview
L’éditeur universel fournit un éditeur de texte enrichi (RTE) à la fois sur place et dans le panneau des propriétés pour permettre aux créateurs et aux créatrices d’appliquer des modifications de mise en forme lorsqu’ils modifient leur texte.
Cet éditeur de texte enrichi peut être configuré à l’aide de filtres de composant . Ce document décrit les options de configuration disponibles, ainsi que des exemples.
- Vous pouvez désactiver les options dont vous n’avez pas besoin.
- L’activation d’options non compatibles avec votre type de projet n’est pas prise en charge.
Structure de configuration structure
La configuration de l’éditeur de texte enrichi se compose de deux parties :
Ces configurations peuvent être définies dans le cadre d’un filtre de composant avec la propriété rte.
[
{
"id": "richtext",
"rte": {
"toolbar": {
// Toolbar configuration
},
"actions": {
// Action-specific configurations
}
},
"components": [
"richtext"
]
}
]
Configuration de la barre d’outils toolbar
La configuration de la barre d’outils contrôle les options de modification disponibles dans l’interface utilisateur et leur organisation. Sections disponibles
{
"toolbar": {
// Text formatting options
"format": ["bold", "italic", "underline", "strike", "text_color"],
// Text alignment options
"alignment": ["left", "center", "right", "justify"],
// Text direction options, right-to-left or left-to-right
"direction": ["rtl", "ltr"],
// Indentation controls
"indentation": ["indent", "outdent"],
// Block-level elements
"blocks": ["paragraph", "h1", "h2", "h3", "h4", "h5", "h6", "code_block", "blockquote"],
// List options
"list": ["bullet_list", "ordered_list"],
// Content insertion
"insert": ["link", "unlink", "image", "special_characters"],
// Superscript/subscript
"sr_script": ["superscript", "subscript"],
// Editor utilities
"editor": ["removeformat", "clean_unsupported_tags", "paste_text", "fullscreen"],
// Advanced items (e.g. the class picker).
"advanced": ["classes"],
// Section ordering (optional)
"sections": ["format", "alignment", "list"]
}
}
Configuration d’action action
La configuration des actions vous permet de personnaliser le comportement et l’apparence des actions de modification individuelles. Voici les sections disponibles.
Options d’action courantes common-action-options
La plupart des actions prennent en charge les options courantes suivantes :
shortcut?: chaîne - remplace le raccourci clavier par défaut de l’action (le cas échéant)label?: chaîne - remplace le libellé utilisé pour l’action dans l’interface utilisateurhideInline?: booléen. Lorsqu’elle esttrue, cette action est masquée dans la barre d’outils de l’éditeur de texte enrichi contextuel (intégré)
{
"actions": {
"bold": {
"label": "Bold",
"shortcut": "Mod-B",
"hideInline": true
}
}
}
Formater les actions format
Les actions de format sont utilisées pour appliquer une mise en forme et prendre en charge le changement de balise HTML pour choisir entre des variantes sémantiques. Les sections suivantes sont disponibles.
{
"actions": {
"bold": {
"tag": "strong", // Use <strong> instead of <b>
"shortcut": "Mod-B", // Custom keyboard shortcut
"label": "Make Bold" // Custom button label
},
"italic": {
"tag": "em", // Use <em> instead of <i>
"shortcut": "Mod-I",
"label": "Italicize"
},
"strike": {
"tag": "del" // Use <del> instead of <s>
}
}
}
Liste des actions list
Les actions de liste prennent en charge le wrapping de contenu pour contrôler la structure HTML. Les sections suivantes sont disponibles.
{
"actions": {
"bullet_list": {
"wrapInParagraphs": true, // <ul><li><p>content</p></li></ul>
"shortcut": "Mod-Shift-8", // Custom shortcut
"label": "Bullet List" // Custom label
},
"ordered_list": {
"wrapInParagraphs": false, // <ol><li>content</li></ol> (default)
"shortcut": "Mod-Shift-9"
}
}
}
Actions du tableau table-actions
Les actions de tableau prennent en charge le renvoi à la ligne du contenu pour contrôler la structure HTML dans les cellules du tableau :
{
"actions": {
"table": {
"wrapInParagraphs": false, // <td>content</td> (default)
"shortcut": "Mod-Alt-T", // Custom shortcut
"label": "Insert Table" // Custom label
}
}
}
Options de configuration du tableau table-configuration-options
wrapInParagraphs:false(par défaut) - Les cellules du tableau contiennent du contenu de texte non enveloppéwrapInParagraphs:true- Les cellules de tableau encapsulent le contenu dans des balises de paragraphe
Exemples :
Si wrapInParagraphs : false :
<!-- Single line -->
<td>Cell content</td>
<!-- Multiple paragraphs get <br> separation -->
<td>Line 1<br />Line 2</td>
Si wrapInParagraphs : true :
<!-- Single paragraph -->
<td><p>Cell content</p></td>
<!-- Multiple paragraphs preserved -->
<td>
<p>Line 1</p>
<p>Line 2</p>
</td>
wrapInParagraphs : false), le désinfectant insère automatiquement des balises <br> entre plusieurs paragraphes afin de conserver les sauts de ligne visuels. Cela respecte les normes HTML et les pratiques courantes des principaux éditeurs de texte enrichi.Boîtes de dialogue Propriétés properties-dialog
Le module externe de tableau fournit trois boîtes de dialogue d’éditeur de propriétés qui s’ouvrent à partir du menu Table lorsque ces indicateurs sont activés :
- Propriétés du tableau — Modifiez la largeur/hauteur du tableau englobant, l’espacement des cellules, la marge intérieure des cellules, l’alignement, la bordure (largeur/style/couleur) et la couleur d’arrière-plan. Les modifications de la bordure et de la marge intérieure des cellules s’étendent sur chaque cellule d’une même transaction, de sorte que le résultat visuel correspond à ce à quoi un utilisateur s’attend.
- Propriétés de la ligne — Modifiez le type de ligne de la ligne englobante (en-tête/corps/pied de page), l’alignement, la hauteur, la bordure (largeur/style/couleur) et la couleur d’arrière-plan. Le type de ligne est en section seule (correspondant au
table_header_type: "section"par défaut de TinyMCE) : une ligne d’en-tête passe en<thead>lors de la sérialisation, mais ses cellules restent<td>. Utilisez Propriétés de la cellule -> Cellule d’en-tête par<th>. Lors de la sérialisation, les lignes sont regroupées en sections<thead>/<tbody>/<tfoot>réelles (correspondant à TinyMCE/Word). Voir la note relative à la conservation ci-dessous. Les bordures s’étendent jusqu’aux cellules de la ligne pour s’afficher avec une bordure réduite. - Propriétés de la cellule — Modifiez le type de cellule sélectionné (cellule/en-tête), la largeur/hauteur, l’alignement horizontal et vertical, la bordure (largeur/style/couleur) et la couleur d’arrière-plan. Lorsqu’un
CellSelections’étend sur plusieurs cellules, le correctif est appliqué simultanément à chaque cellule sélectionnée. Le type de cellule permet d’activer ou de désactiver la cellule entretable_cell(<td>) ettable_header(<th>).
Tous trois sont désactivés par défaut (opt-in), correspondant au reste de la surface de configuration de l’éditeur de texte enrichi où les fonctionnalités sont désactivées jusqu’à ce qu’un client les active explicitement. Souscrivez par client lorsque vous souhaitez que les boîtes de dialogue s’affichent :
{
actions: {
table: {
showTableProperties: true, // default false: show "Table Properties" menu item
showRowProperties: true, // default false: show "Row Properties" menu item
showCellProperties: true, // default false: show "Cell Properties" menu item
}
}
}
Options de la boîte de dialogue Propriétés properties-dialog-options
|—|—|—|
| Option | Par défaut | Effet |
| showTableProperties | false | Afficher l’élément Propriétés du tableau dans le menu déroulant Tableau |
| showRowProperties | false | Afficher l’élément Propriétés de la ligne dans le sous-menu Ligne |
| showCellProperties | false | Afficher l’élément Propriétés de la cellule dans le sous-menu Cellule |
Les boîtes de dialogue effectuent des allers-retours htmlAttrs.style sur le nœud ProseMirror correspondant, c’est-à-dire qu’elles émettent des fichiers CSS intégrés tels que TinyMCE/Word, et non des attributs de données personnalisés. La largeur de cellule écrit également le colwidth au niveau du schéma afin qu’il survive aux machines de tableau de PM. Le type de cellule est porté par la balise node (<td>/<th>).
Le schéma prosemirror-tables est plat (table -> table_row -> cell) sans nœuds de section <thead>/<tbody>/<tfoot>. Par conséquent, en interne, l’intention d’en-tête/corps/pied de page d’une ligne est conservée sur le <tr> en tant que marqueur de data-row-type. Lorsque le type d’une ligne change, les lignes sont à nouveau triées à leur place dans l’ordre en-tête -> corps -> pied de page au sein de la même transaction, de sorte que la zone de travail de l’éditeur correspond à la structure exportée en direct (les lignes d’en-tête sont hissées en haut, les lignes de pied de page sont enfoncées en bas, comme TinyMCE). Cette réorganisation dans l’éditeur est ignorée lorsqu’une cellule s’étend sur plusieurs lignes (rowspan > 1), où le déplacement d’une ligne corromprait la grille. En sortant, sanitizeHTML regroupe les lignes en sections <thead>/<tbody>/<tfoot> réelles (lignes d’en-tête en premier, lignes de pied de page en dernier) et laisse tomber le marqueur, produisant la même structure TinyMCE/Word d’émission. En arrivant, la section englobante d’un <tr> est relue dans le marqueur, de sorte qu’elle coupe les allers-retours HTML.
Actions de lien link
Les actions Lien prennent en charge le contrôle des attributs de la cible pour gérer le comportement des liens. Les sections suivantes sont disponibles.
{
"actions": {
"link": {
"hideTarget": false, // Show target attribute options (default)
"shortcut": "Mod-K", // Custom keyboard shortcut
"label": "Insert Link" // Custom button label
},
"unlink": {
"shortcut": "Mod-Shift-K", // Custom keyboard shortcut
"label": "Remove Link" // Custom button label
}
}
}
Options de configuration du lien link-options
hideTarget:false(par défaut) - Incluez l’attribut cible dans les liens, en autorisant les_self, les_blank, etc.hideTarget:true- Exclure entièrement l’attribut cible des liens
L’action unlink n’apparaît que lorsque le curseur est positionné dans un lien existant. Cela supprime la mise en forme du lien tout en conservant le contenu textuel.
Actions sur l’image image
Les actions d’image prennent en charge le renvoi à la ligne des éléments d’image pour générer un balisage d’image réactif. Les sections suivantes sont disponibles.
{
"actions": {
"image": {
"wrapInPicture": false, // Use <img> tag (default)
"shortcut": "Mod-Shift-I", // Custom keyboard shortcut
"label": "Insert Image" // Custom button label
}
}
}
Options de configuration d’image image-options
wrapInPicture:false(par défaut) - Génération d’éléments de<img>simpleswrapInPicture:true- Envelopper des images dans des éléments<picture>pour un design réactif
Plein écran full-screen
L’action Plein écran active/désactive le mode Plein écran de l’éditeur :
{
actions: {
fullscreen: {
label: "Fullscreen"; // Custom button label
}
}
}
Lorsque le plein écran est actif, le wrapper de l’éditeur reçoit le rte-fullscreen-wrapper de classe. Les applications clientes peuvent cibler cette classe pour appliquer des styles ou des propriétés CSS personnalisés (par exemple, z-index, dimensions, recouvrement). (Non pris en charge dans l’éditeur universel)
Configuration de la mise en retrait indentation
La mise en retrait possède une configuration au niveau des fonctionnalités qui contrôle la portée du comportement de mise en retrait, ainsi que des configurations d’action individuelles pour les raccourcis et les libellés.
{
"actions": {
// Feature-level configuration
"indentation": {
"scope": "all" // Controls what content can be indented (default: "all")
},
// Individual action configurations
"indent": {
"shortcut": "Tab", // Custom keyboard shortcut
"label": "Increase Indent" // Custom button label
},
"outdent": {
"shortcut": "Shift-Tab", // Custom keyboard shortcut
"label": "Decrease Indent" // Custom button label
}
}
}
Options d’étendue de la mise en retrait indentation-options
-
scope:all(par défaut) - Le retrait/retrait négatif s’applique à tout le contenu :- Listes : imbriquer/désimbriquer des éléments de liste
- Paragraphes et titres : Augmenter/diminuer le niveau général de retrait
-
scope:lists- Le retrait/retrait négatif s’applique uniquement aux éléments de liste :- Listes : imbriquer/désimbriquer des éléments de liste
- Paragraphes et en-têtes : pas de retrait (boutons désactivés pour ces paragraphes)
Caractères spéciaux special-characters
L’action d’insertion special_characters ouvre une fenêtre contextuelle de sélecteur de caractères permettant d’insérer des caractères spéciaux (symboles, opérateurs mathématiques, signes de devise, ponctuation, flèches, etc.) à la position du curseur.
{
"toolbar": {
"insert": ["link", "unlink", "image", "table", "special_characters"],
"sections": ["insert"],
},
"actions": {
"special_characters": {
"label": "Special Characters"
}
}
}
Un jeu par défaut de 44 caractères couramment utilisés est inclus par défaut. La liste des caractères peut être personnalisée par le biais de deux options de configuration :
appendCharacters- Ajouter des caractères au jeu par défautcharacters- Remplacez entièrement le jeu par défaut
Chaque entrée de caractère comporte character (caractère Unicode) et title (info-bulle/nom accessible).
Ajouter des caractères aux valeurs par défaut append-special-characters
{
"actions": {
"special_characters": {
"appendCharacters": [
{ "character": "\u2605", "title": "Black star" },
{ "character": "\u2764", "title": "Heavy black heart" },
];
}
}
}
Remplacer les caractères spéciaux par défaut replace-special-characters
{
"actions": {
"special_characters": {
"characters": [
{ "character": "\u00A9", "title": "Copyright sign" },
{ "character": "\u00AE", "title": "Registered sign" },
{ "character": "\u2122", "title": "Trade mark sign" },
];
}
}
}
Les deux options ensemble both-special-character-options
Cet exemple utilise characters comme base, puis ajoute des caractères supplémentaires à l’aide de appendCharacters.
{
"actions": {
"special_characters": {
"characters": [
{ "character": "\u00A9", "title": "Copyright sign" },
{ "character": "\u00AE", "title": "Registered sign" }
],
"appendCharacters": [
{ "character": "\u2605", "title": "Black star" }
]
}
}
}
Classes CSS css-classes
L’action classes ajoute une liste déroulante qui applique une classe CSS configurable au contenu de l’éditeur de texte enrichi. Il est répertorié en tant qu’élément dans la section advanced. Le plug-in écrit/supprime uniquement les noms de classe sur l’HTML produit. L’application cliente possède le CSS réel de chaque classe et est chargée de le charger quel que soit l’endroit où le contenu de l’éditeur de texte enrichi est rendu (éditeur, prévisualisation, publication).
La liste déroulante ne s’affiche que lorsqu’au moins une option est configurée. Le plug-in n’est fourni avec aucune valeur par défaut.
{
toolbar: {
advanced: ["classes"],
sections: ["blocks", "format", "advanced"],
},
actions: {
classes: {
label: "Add Custom Class",
options: [
{ value: "rte-hero", label: "Hero title" },
{ value: "rte-lede", label: "Lede paragraph" },
{ value: "rte-callout", label: "Callout block" },
{ value: "rte-pill", label: "Pill (inline)" },
],
},
},
}
Chaque entrée a une valeur (le nom de classe CSS écrit dans HTML) et un libellé (le texte lisible par l’utilisateur affiché dans la liste déroulante).
La cible suit la règle qui se rapproche le plus de la réussite de la carrière :
- Sélection vide à l’intérieur d’une étendue gérée : la classe est appliquée à cette exécution d’étendue, et non au bloc. Le fait de sélectionner une autre classe permute la classe de la plage ; Supprimer la classe personnalisée la supprime.
- Sélection vide ailleurs (curseur uniquement) : la classe choisie est appliquée à l’ancêtre au niveau du bloc le plus proche du curseur (
<p>,<h1>, etc.). Lorsque le curseur se trouve à l’intérieur d’un élément de liste ou d’une cellule de tableau qui enveloppe un paragraphe, le<li>/<td>/<th>reçoit la classe, et non le paragraphe interne. - Sélection réelle : le texte sélectionné est encapsulé dans un
<span class="...">. Si la sélection possède déjà une étendue, la classe de l’étendue existante est mise à jour. - Supprimer la classe personnalisée : supprimez la classe gérée de la cible (exécution d’étendue ou bloc, selon la résolution du point d’insertion). Si le seul attribut restant sur une étendue était la classe managée, l’étendue elle-même est dépliée. L’option Supprimer la classe personnalisée ne s’affiche que lorsqu’une classe gérée est actuellement active.
Les classes existantes qui ne font pas partie de la liste des options configurées sont conservées intactes. Seules les classes gérées sont permutées en/hors. Les classes définies par le client coexistent en toute sécurité avec le plug-in .
Réflexion déroulante :
- Lorsque seul le curseur est placé, la liste déroulante reflète la classe gérée la plus proche : l’étendue au niveau du signe insertion s’il en existe une, sinon le bloc sous le curseur.
- Avec une sélection, la liste déroulante reflète la classe gérée sur l’étendue qui enveloppe la sélection. Uniquement lorsque l’ensemble de la sélection partage la même classe. Les sélections mixtes n’affichent rien sélectionné.
Types de blocs block-types
La section de la barre d’outils blocks affiche une liste déroulante qui permet de basculer le bloc actif entre les types de blocs configurés. Les valeurs prises en charge sont paragraph, h1-h6, code_block et blockquote.
blockquoteest un bloc d’habillage (soncontentProseMirror estblock+), contrairement àparagraph/h1-h6/code_blockqui sont des blocs de texte. Si vous sélectionnez Citation, le bloc actif est encapsulé dans un<blockquote>. La liste déroulante affiche alors Citation tel que sélectionné lorsque le signe insertion est à l’intérieur de l’un d’eux. Si vous sélectionnez un autre type de bloc (par exemple, Paragraphe) à l’intérieur d’un guillemet, le bloc sort d’abord du guillemet, de sorte qu’il le quitte également. Ceci reflète le menu déroulant des blocs de TinyMCE.- Puisqu’il s’agit d’un nœud d’habillage, un
<blockquote>peut contenir plusieurs paragraphes, listes ou même des guillemets imbriqués. C’est ce qui permet d’envoyer et de reprendre sans perte du contenu créé de l’extérieur : TinyMCE (contenu hérité) et Word (coller) émettent tous deux du<blockquote><p>…</p></blockquote>(souvent plusieurs paragraphes) et cette structure est conservée lors du chargement, de la modification et de la sérialisation, plutôt que d’être aplatie. - Comme pour tous les types de bloc, l’application cliente possède le code CSS qui définit le style visuel
<blockquote>l’endroit où le contenu de l’éditeur de texte enrichi est rendu.
{
"toolbar": {
"blocks": ["paragraph", "h1", "h2", "h3", "code_block", "blockquote"],
"sections": ["blocks"],
},
"actions": {
"blockquote": {
"label": "Quote", // Custom dropdown label
},
},
}
Coller en tant que texte paste-as-text
L’action de l’éditeur de paste_text active un workflow standard de collage en tant que texte brut.
- Raccourci par défaut : Mod-Shift-v (Cmd+Maj+V sous macOS, Ctrl+Maj+V sous Windows/Linux)
- Comportement : Colle à partir de texte/brut (la mise en forme source est ignorée)
- Dans les listes, les nouvelles lignes créent des éléments de liste.
{
"toolbar": {
"editor": ["removeformat", "paste_text"]
},
"actions": {
"paste_text": {
"shortcut": "Mod-Shift-v",
"label": "Paste as Text"
}
}
}
Rechercher et remplacer find-replace
L’action de l’éditeur de find_and_replace utilise prosemirror-search (surlignages de correspondance) ainsi qu’un plug-in de commande indexé par FIND_AND_REPLACE_PLUGIN_KEY.
- Intégration : ajoutez des
createFindAndReplacePlugin()aux modules externes ProseMirror de votre éditeur lorsquetoolbar.editorinclut desfind_and_replace. - API : utilisez
FIND_AND_REPLACE_PLUGIN_KEY.getState(state)pour accéder àfind,replaceNext,replaceAlletgetMatchCount. - Styles : assurez-vous que votre application charge CSS pour les
.ProseMirror-search-matchet les.ProseMirror-active-search-match(à partir du style/search.cssdeprosemirror-searchou de votre propre équivalent).
{
"toolbar": {
"editor": ["find_and_replace"],
"sections": ["editor"],
},
"actions": {
"find_and_replace": {
"label": "Find and replace",
},
},
}
Autres actions other
Toutes les autres actions prennent en charge la personnalisation de base. Les sections suivantes sont disponibles.
{
"actions": {
"h1": {
"shortcut": "Mod-Alt-1",
"label": "Large Heading"
},
"paragraph": {
"shortcut": "Mod-Alt-0",
"label": "Normal Text"
},
"link": {
"shortcut": "Mod-K",
"label": "Insert Link",
"hideTarget": false // Show target attribute options (default: false)
}
}
}
Exemple complet example
Voici un exemple de configuration complète.
[
{
"id": "richtext",
"rte": {
// Configure which tools appear in toolbar
"toolbar": {
"format": [
"bold",
"italic",
"text_color"
],
"blocks": [
"paragraph",
"h1",
"h2"
],
"list": [
"bullet_list",
"ordered_list"
],
"insert": [
"link",
"unlink",
"image",
"special_characters"
],
"editor": [
"removeformat",
"paste_text"
],
"sections": [
"format",
"blocks",
"list",
"insert"
]
},
// Customize individual action behavior
"actions": {
// Format actions with HTML tag choices
"bold": {
"tag": "strong",
"shortcut": "Mod-B",
"label": "Bold"
},
"italic": {
"tag": "em",
"shortcut": "Mod-I"
},
// List actions with content wrapping
"bullet_list": {
"wrapInParagraphs": true,
"label": "Bullet List"
},
"ordered_list": {
"wrapInParagraphs": false
},
// Link actions with target control
"link": {
"hideTarget": false,
"shortcut": "Mod-K",
"label": "Add Link"
},
"unlink": {
"label": "Remove Link"
},
// Image actions with picture wrapping
"image": {
"wrapInPicture": false, // Use <img> tag instead of <picture>
"shortcut": "Mod-Shift-I",
"label": "Insert Image",
},
// Special characters with custom additions
"special_characters": {
"label": "Special Characters",
"appendCharacters": [{ "character": "\u2605", "title": "Black star" }],
},
// Other actions with basic customization
"paste_text": {
"shortcut": "Mod-Shift-v",
"label": "Paste as Text",
},
"h1": {
"shortcut": "Mod-Alt-1",
"label": "Main Heading"
}
}
}
}
]
Détails de l’option d’action action-details
Plusieurs options comportent des détails supplémentaires qu’il est important de garder à l’esprit.
wrapInParagraphs wrapInParagraphs
L’option wrapInParagraphs des listes contrôle la structure d’HTML.
wrapInParagraphs: false (par défaut) wrapInParagraphs-false
<ul>
<li>Simple text content</li>
<li>Another item</li>
</ul>
wrapInParagraphs: true wrapInParagraphs-true
<ul>
<li><p>Text wrapped in paragraphs</p></li>
<li><p>Supports rich formatting within items</p></li>
</ul>
Utilisez wrapInParagraphs: true lorsque vous avez besoin de :
- Formatage enrichi dans les éléments de liste
- Plusieurs paragraphes par élément de liste
- Style cohérent au niveau du bloc
wrapInPicture
L’option wrapInPicture pour les images contrôle la structure HTML générée pour le contenu de l’image.
wrapInPicture : false (par défaut) wrapinpicture-false
<img src="image.jpg" alt="Description" />
wrapInPicture : true wrapinpicture-true
<picture>
<img src="image.jpg" alt="Description" />
</picture>
Utilisez wrapInPicture: true lorsque vous avez besoin de :
- Prise en charge des images réactives avec des éléments
<source>. - Fonctionnalités de direction artistique.
- La pérennisation des fonctionnalités d’image avancées.
- Structure cohérente d’un élément image.
wrapInPicture: true est activé, les images peuvent être améliorées avec des éléments <source> supplémentaires pour différents formats et requêtes de média, ce qui les rend plus flexibles pour le responsive design.Options de la cible du lien link-target
L’option hideTarget pour les liens contrôle si l’attribut target est inclus dans les liens générés et si la boîte de dialogue de création de lien inclut un champ pour la sélection de la cible.
hideTarget: false (par défaut) hideTarget-false
<a href="https://example.com" target="_self">Link text</a>
<a href="https://example.com" target="_blank">External link</a>
hideTarget: true hideTarget-true
<a href="https://example.com">Link text</a>
Désactivation des liens sur les images disableforimages
L’option disableForImages pour les liens contrôle si les utilisateurs peuvent créer des liens sur des images et des éléments d’image. Cela s’applique à la fois aux éléments de <img> intégrés et aux éléments de <picture> au niveau du bloc.
disableForImages: false (par défaut) disableforimages-false
Les utilisateurs peuvent sélectionner des images et les encapsuler dans des liens.
<!-- Inline image with link -->
<a href="https://example.com">
<img src="image.jpg" alt="Description" />
</a>
<!-- Block-level picture with link -->
<a href="https://example.com">
<picture>
<img src="image.jpg" alt="Description" />
</picture>
</a>
disableForImages : true disableforimages-true
Le bouton Lien est désactivé lorsqu’une image ou une image est sélectionnée. Les utilisateurs peuvent uniquement créer des liens sur du contenu texte.
<!-- Images remain standalone without links -->
<img src="image.jpg" alt="Description" />
<picture>
<img src="image.jpg" alt="Description" />
</picture>
<!-- Links work normally on text -->
<a href="https://example.com">Link text</a>
Utilisez disableForImages: true lorsque vous souhaitez :
- Maintenez la cohérence visuelle en empêchant les images liées.
- Simplifiez la structure de contenu en séparant les images de la navigation.
- Appliquez des politiques de contenu qui limitent la liaison d’images.
- Réduisez la complexité de l’accessibilité dans votre contenu.
Options de balises tag
Les actions de format permettent de basculer entre les variantes d’HTML.
bold<strong><b>italic<em><i>strike<del><s>Choisissez des balises sémantiques (<strong>, <em>, <del>) pour une meilleure accessibilité et un meilleur référencement.
Couleur du texte color
L’option text_color format ajoute des fonctionnalités de coloration du texte à l’éditeur.
<!-- With color applied -->
<span style="color: #ff0000">Colored text</span>
<!-- Color removed -->
Plain text
Le plug-in analyse également les éléments <font color="..."> hérités à des fins de rétrocompatibilité.
Raccourcis clavier keyboard-shortcuts
Les raccourcis utilisent le ou les Mod-Key de format où :
Mod=Cmdsous Mac,Ctrlsous Windows/Linux- Exemples :
Mod-B,Mod-Shift-8,Mod-Alt-1
HTML non pris en charge unsupported-html
Par défaut, les balises HTML inconnues sont supprimées lorsqu’elles sont analysées par l’éditeur. Pour les conserver, vous devez activer l’option de configuration unsupportedHtml :
const rteConfig = {
unsupportedHtml: true, // preserve unknown HTML tags (default: false)
};
false (par défaut)trueunsupportedHtmlOptions.structuralTags (facultatif) unsupportedhtmloptions
Utilisez unsupportedHtmlOptions.structuralTags pour contrôler quelles balises structurelles supplémentaires sont traitées comme des HTML prises en charge.
const rteConfig = {
unsupportedHtml: true,
unsupportedHtmlOptions: {
structuralTags: ["div", "section"], // preserve configured tags as supported
},
};
[]["div"]<div> est considéré comme pris en charge par HTML et n’est pas encapsulé comme non pris en charge.["div", "section"]<div> et <section> sont traités comme des HTML prises en charge et ne sont pas enveloppés comme des éléments non pris en charge.unsupportedHtmlOptions affecte uniquement le comportement lorsque unsupportedHtml est activé.Lorsqu’il est activé, l’éditeur effectue le rendu des nœuds non pris en charge avec des balises wrapper (unsupported-block/unsupported-inline) et des classes wrapper. Les applications clientes doivent fournir le style de cette classe (par exemple, bordure, marge intérieure, arrière-plan). Le libellé de balise à l’intérieur du bloc utilise rte-unsupported-label, qui peut également être personnalisé.
rte-unsupported-blockrte-unsupported-inlinerte-unsupported-label
Les applications clientes doivent fournir un style pour ces classes (par exemple, bordure, espacement, arrière-plan et alignement sur la ligne).
Lorsque unsupportedHtml est activé, le client doit ajouter le module externe de nœuds non pris en charge (par exemple, createUnsupportedNodesPlugin()) afin que la copie d’un bloc ou d’un nœud intégré non pris en charge place son texte interne dans le presse-papiers (texte brut uniquement) et que les utilisateurs puissent coller le contenu ailleurs.