Konfigurieren des RTE für den universellen Editor configure-rte
Erfahren Sie, wie Sie den Rich-Text-Editor (RTE) im universellen Editor konfigurieren können.
Überblick overview
Der universelle Editor bietet sowohl im Kontext als auch im Eigenschaftenbereich einen Rich-Text-Editor (RTE), mit dem Autoren Formatierungsänderungen anwenden können, wenn sie ihren Text bearbeiten.
Dieser RTE kann mithilfe von Komponentenfiltern“ konfiguriert In diesem Dokument wird beschrieben, welche Konfigurationsoptionen zusammen mit Beispielen verfügbar sind.
- Sie können die Optionen deaktivieren, die Sie nicht benötigen.
- Das Aktivieren von Optionen, die nicht mit Ihrem Projekttyp kompatibel sind, wird nicht unterstützt.
Konfigurationsstruktur structure
Die RTE-Konfiguration besteht aus zwei Teilen:
Diese Konfigurationen können als Teil eines Komponentenfilters“ mit Eigenschaft rte definiert werden.
[
{
"id": "richtext",
"rte": {
"toolbar": {
// Toolbar configuration
},
"actions": {
// Action-specific configurations
}
},
"components": [
"richtext"
]
}
]
Symbolleistenkonfiguration toolbar
Die Konfiguration der Symbolleiste steuert, welche Bearbeitungsoptionen in der Benutzeroberfläche verfügbar sind und wie sie organisiert sind. Dies sind die verfügbaren Abschnitte
{
"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"]
}
}
Aktionskonfiguration action
Mit der Konfiguration von Aktionen können Sie das Verhalten und Erscheinungsbild einzelner Bearbeitungsaktionen anpassen. Dies sind die verfügbaren Abschnitte.
Allgemeine Aktionsoptionen common-action-options
Die meisten Aktionen unterstützen die folgenden allgemeinen Optionen:
shortcut?: Zeichenfolge - Überschreibt den standardmäßigen Tastaturbefehl für die Aktion (falls vorhanden)label?: Zeichenfolge - Überschreibt die für die Aktion in der Benutzeroberfläche verwendete BeschriftunghideInline?: Boolescher Wert - Blendet diese Aktiontrueaus der kontextbezogenen (Inline-)RTE-Editor-Symbolleiste aus.
{
"actions": {
"bold": {
"label": "Bold",
"shortcut": "Mod-B",
"hideInline": true
}
}
}
Aktionen formatieren format
Formatierungsaktionen werden verwendet, um Formatierungen anzuwenden und den Wechsel zwischen HTML-Tags zur Auswahl semantischer Varianten zu unterstützen. Die folgenden Abschnitte sind verfügbar.
{
"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>
}
}
}
Aktionen auflisten list
Listenaktionen unterstützen den Inhaltsumbruch zur Steuerung der HTML-Struktur. Die folgenden Abschnitte sind verfügbar.
{
"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"
}
}
}
Tabellenaktionen table-actions
Tabellenaktionen unterstützen den Inhaltsumbruch zur Steuerung der HTML-Struktur in Tabellenzellen:
{
"actions": {
"table": {
"wrapInParagraphs": false, // <td>content</td> (default)
"shortcut": "Mod-Alt-T", // Custom shortcut
"label": "Insert Table" // Custom label
}
}
}
Tabellenkonfigurationsoptionen table-configuration-options
wrapInParagraphs:false(Standard) - Tabellenzellen enthalten nicht umschlossenen TextinhaltwrapInParagraphs:true- Tabellenzellen umschließen Inhalt in Absatz-Tags
Beispiele:
Wenn wrapInParagraphs: false:
<!-- Single line -->
<td>Cell content</td>
<!-- Multiple paragraphs get <br> separation -->
<td>Line 1<br />Line 2</td>
Wenn 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) fügt das Bereinigungsprogramm automatisch <br> Tags zwischen mehreren Absätzen ein, um visuelle Zeilenumbrüche beizubehalten. Dies folgt den HTML-Standards und gängigen Verfahren in allen gängigen Rich-Text-Editoren.Eigenschaften-Dialogfelder properties-dialog
Das Tabellen-Plug-in verfügt über drei Eigenschaften-Editor-Dialogfelder, die über das Menü Tabelle geöffnet werden, wenn diese Flags aktiviert sind:
- Tabelleneigenschaften - Bearbeiten Sie die Breite/Höhe, den Zellenabstand, den Zellenabstand, die Ausrichtung, den Rahmen (Breite/Stil/Farbe) und die Hintergrundfarbe der umschließenden Tabelle. Änderungen am Rahmen und am Zellenabstand werden an jede Zelle in derselben Transaktion übertragen, sodass das visuelle Ergebnis dem entspricht, was ein Benutzer erwarten würde.
- Zeileneigenschaften - Bearbeiten Sie den Zeilentyp (Kopfzeile/Hauptteil/Fußzeile), die Ausrichtung, die Höhe, den Rahmen (Breite/Stil/Farbe) und die Hintergrundfarbe der umschließenden Zeile. Der Zeilentyp ist nur für Abschnitte bestimmt (entspricht dem Standard-
table_header_type: "section"von TinyMCE): Eine Kopfzeile wird bei der Serialisierung in<thead>verschoben, ihre Zellen bleiben jedoch<td>. Verwenden Sie Zelleneigenschaften -> Kopfzeilenzelle für<th>. Bei der Serialisierung werden die Zeilen in reale<thead>/<tbody>/<tfoot>Abschnitte (passend zu TinyMCE/Word) gruppiert. Siehe Speicherhinweis unten. Rahmen werden an die Zellen der Zeile ausgefächert, sodass sie sich unter dem Rahmen reduzieren. - Zelleneigenschaften - Bearbeiten Sie den/die ausgewählten Zellentyp(en) (Zelle/Überschriftzelle), Breite/Höhe, horizontale und vertikale Ausrichtung, Rahmen (Breite/Stil/Farbe) und Hintergrundfarbe. Wenn ein
CellSelectionmehrere Zellen umfasst, wird das Patch gleichzeitig auf jede ausgewählte Zelle angewendet. Mit dem Zellentyp wird die Zelle zwischentable_cell(<td>) undtable_header(<th>) umgeschaltet.
Alle drei sind standardmäßig deaktiviert (Opt-in) und entsprechen dem Rest der RTE-Konfigurationsoberfläche, in der die Funktionen deaktiviert sind, bis sie von einem Verbraucher explizit aktiviert werden. Opt-in pro Verbraucher, wenn die Dialogfelder angezeigt werden sollen:
{
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
}
}
}
Optionen im Dialogfeld „Eigenschaften“ properties-dialog-options
|—|—|—|
| Option | Standard | Ergebnis |
| showTableProperties | false | Das Element Tabelleneigenschaften in der Dropdown-Liste Tabelle anzeigen |
| showRowProperties | false | Das Element Zeileneigenschaften im Untermenü Zeile anzeigen |
| showCellProperties | false | Das Element Zelleneigenschaften im Untermenü Zelle anzeigen |
Die Dialogfelder durchlaufen htmlAttrs.style auf dem entsprechenden ProseMirror-Knoten, d. h. Inline-CSS wie TinyMCE/Word, geben keine benutzerdefinierten Datenattribute aus. Die Zellenbreite schreibt auch die colwidth auf Schemaebene, sodass sie die PM-Tabellenmaschine überlebt. Der Zellentyp wird durch das Knoten-Tag übertragen (<td>/<th>).
Das prosemirror-tables Schema ist flach (table -> table_row -> cell) ohne <thead>/<tbody>/<tfoot> Abschnittsknoten, sodass intern die Kopf-/Hauptteil-/Fußzeilenabsicht einer Zeile als data-row-type auf der <tr> gehalten wird. Wenn sich der Typ einer Zeile ändert, werden die Zeilen innerhalb derselben Transaktion in der Reihenfolge Kopfzeile -> Hauptteil -> Fußzeile neu sortiert, sodass die Arbeitsfläche des Editors mit der exportierten Struktur live übereinstimmt (Kopfzeilen werden oben hochgehoben, Fußzeilen werden unten versenkt, wie TinyMCE). Diese im Editor vorgenommene Neuanordnung wird übersprungen, wenn eine Zelle sich über mehrere Zeilen erstreckt (rowspan > 1), wobei das Verschieben einer Zeile das Raster beschädigen würde. Auf dem Weg hinaus gruppiert sanitizeHTML die Zeilen in echte <thead>/<tbody>/<tfoot> Abschnitte (Kopfzeilen zuerst, Fußzeilen zuletzt) und lässt die Markierung fallen, was die gleiche Struktur TinyMCE/Word-Ausgabe erzeugt. Auf dem Weg hinein wird der umschließende Abschnitt eines <tr> wieder in den Marker gelesen, so abgeschnittene HTML-Rundfahrten.
Aktionen verknüpfen link
Link-Aktionen unterstützen die Steuerung der Zielattribute zur Verwaltung des Link-Verhaltens. Die folgenden Abschnitte sind verfügbar.
{
"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
}
}
}
Link-Konfigurationsoptionen link-options
hideTarget:false(Standard) - Zielattribut in Links einschließen,_self,_blankusw.hideTarget:true- Zielattribut vollständig von Links ausschließen
Die unlink Aktion wird nur angezeigt, wenn der Cursor in einem vorhandenen Link positioniert wird. Die Link-Formatierung wird entfernt, während der Textinhalt beibehalten wird.
Bildaktionen image
Bildaktionen unterstützen das Umbrechen von Bildelementen, um ein responsives Bild-Markup zu generieren. Die folgenden Abschnitte sind verfügbar.
{
"actions": {
"image": {
"wrapInPicture": false, // Use <img> tag (default)
"shortcut": "Mod-Shift-I", // Custom keyboard shortcut
"label": "Insert Image" // Custom button label
}
}
}
Bildkonfigurationsoptionen image-options
wrapInPicture:false(Standard) - Generieren einfacher<img>wrapInPicture:true- Umschließen von Bildern in<picture>für responsives Design
Vollbild full-screen
Die Vollbildaktion schaltet den Editor in den Vollbildmodus um und aus ihm heraus:
{
actions: {
fullscreen: {
label: "Fullscreen"; // Custom button label
}
}
}
Wenn der Vollbildmodus aktiv ist, erhält der Editor-Wrapper die rte-fullscreen-wrapper. Privatkunden-Apps können diese Klasse als Ziel auswählen, um benutzerdefinierte Stile oder CSS-Eigenschaften (z. B. z-Index, Dimensionen, Überlagerung) anzuwenden. (Im universellen Editor nicht unterstützt)
Konfiguration der Einzüge indentation
Einzüge verfügen über eine Konfiguration auf Funktionsebene, die den Umfang des Einrückungsverhaltens steuert, sowie über individuelle Aktionskonfigurationen für Tastaturbefehle und Beschriftungen.
{
"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
}
}
}
Optionen für Einzugsumfang indentation-options
-
scope:all(Standard) - Einzug/Auszug gilt für alle Inhalte:- Listen: Verschachtelte/verschachtelte Listenelemente
- Absätze und Überschriften: Erhöhen/Verringern der allgemeinen Einrückung
-
scope:lists- Einzug/Auszug gilt nur für Listenelemente:- Listen: Verschachtelte/verschachtelte Listenelemente
- Absätze und Überschriften: Keine Einrückung (Schaltflächen für diese deaktiviert)
Sonderzeichen special-characters
Die special_characters Einfügeaktion öffnet ein Popover zur Zeichenauswahl, in dem Sonderzeichen (Symbole, mathematische Operatoren, Währungszeichen, Satzzeichen, Pfeile usw.) eingefügt werden können an der Cursorposition.
{
"toolbar": {
"insert": ["link", "unlink", "image", "table", "special_characters"],
"sections": ["insert"],
},
"actions": {
"special_characters": {
"label": "Special Characters"
}
}
}
Ein Standardsatz von 44 häufig verwendeten Zeichen ist standardmäßig enthalten. Die Zeichenliste kann über zwei Konfigurationsoptionen angepasst werden:
appendCharacters- Dem Standardsatz Zeichen hinzufügencharacters- Standardsatz vollständig ersetzen
Jeder Zeicheneintrag hat character (das Unicode-Zeichen) und title (QuickInfo / barrierefreier Name).
Zeichen an Standardwerte anhängen append-special-characters
{
"actions": {
"special_characters": {
"appendCharacters": [
{ "character": "\u2605", "title": "Black star" },
{ "character": "\u2764", "title": "Heavy black heart" },
];
}
}
}
Standard-Sonderzeichen ersetzen replace-special-characters
{
"actions": {
"special_characters": {
"characters": [
{ "character": "\u00A9", "title": "Copyright sign" },
{ "character": "\u00AE", "title": "Registered sign" },
{ "character": "\u2122", "title": "Trade mark sign" },
];
}
}
}
Beide Optionen zusammen both-special-character-options
In diesem Beispiel wird characters als Basis verwendet und dann werden zusätzliche Zeichen mithilfe von appendCharacters angehängt.
{
"actions": {
"special_characters": {
"characters": [
{ "character": "\u00A9", "title": "Copyright sign" },
{ "character": "\u00AE", "title": "Registered sign" }
],
"appendCharacters": [
{ "character": "\u2605", "title": "Black star" }
]
}
}
}
CSS-Klassen css-classes
Die classes Aktion fügt ein Dropdown-Menü hinzu, das eine konfigurierbare CSS-Klasse auf RTE-Inhalte anwendet. Er wird als Element im Abschnitt advanced aufgeführt. Das Plug-in schreibt/entfernt nur Klassennamen in den erzeugten HTML. Die Consumer-App steuert das tatsächliche CSS für jede Klasse und ist für das Laden dort verantwortlich, wo der RTE-Inhalt gerendert wird (Editor, Vorschau, Veröffentlichung).
Das Dropdown-Menü wird nur angezeigt, wenn mindestens eine Option konfiguriert ist. Das Plug-in wird ohne Standardeinstellungen bereitgestellt.
{
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)" },
],
},
},
}
Jeder Eintrag hat einen -Wert (den in den HTML geschriebenen CSS-Klassennamen) und eine -Kennzeichnung (den in der Dropdown-Liste angezeigten, für Menschen lesbaren Text).
Das Ziel folgt der Caret-to-Caret-Wins-Regel:
- Leere Auswahl innerhalb eines verwalteten Bereichs: Die Klasse wird auf diesen Ausführungsbereich angewendet, nicht auf den Block. Die Auswahl einer anderen Klasse ersetzt die Klasse des Bereichs. Benutzerdefinierte Klasse entfernen wird gelöscht.
- Leere Auswahl an anderer Stelle (nur Cursor): Die ausgewählte Klasse wird auf den nächsten Block-ebenenübergreifenden Vorgänger des Cursors angewendet (
<p>,<h1>usw.). Wenn sich der Cursor in einem Listenelement oder einer Tabellenzelle befindet, das bzw. die einen Absatz umschließt, empfängt der/die<li>/<td>/<th>die Klasse und nicht den inneren Absatz. - Reale Auswahl: Der ausgewählte Text wird in eine
<span class="...">eingebettet. Wenn die Auswahl bereits über einen Bereich verfügt, wird die Klasse des vorhandenen Bereichs aktualisiert. - Benutzerdefinierte Klasse entfernen: Entfernt die verwaltete Klasse aus dem Ziel (span-Ausführung oder -Block, je nachdem, zu welchem Caret-Zeichen das Caret aufgelöst wird). Wenn das einzige verbleibende Attribut in einem Bereich die verwaltete Klasse war, wird der Bereich selbst entpackt. Die Option Benutzerdefinierte Klasse entfernen wird nur angezeigt, wenn eine verwaltete Klasse derzeit aktiv ist.
Vorhandene Klassen, die nicht zur Liste der konfigurierten Optionen gehören, bleiben unberührt. Nur die verwalteten Klassen werden ein-/ausgetauscht. Benutzerdefinierte Klassen koexistieren sicher mit dem Plug-in.
Dropdown-Spiegelung:
- Wenn nur der Cursor platziert ist, spiegelt das Dropdown-Menü die am nächsten verwaltete Klasse wider: den Bereich am Caret-Zeichen, falls vorhanden, andernfalls den Block unter dem Cursor.
- Bei einer Auswahl spiegelt das Dropdown-Menü die verwaltete Klasse auf dem Bereich wider, der die Auswahl umschließt. Nur wenn die gesamte Auswahl dieselbe Klasse hat. Gemischte Auswahlen zeigen nichts ausgewählt an.
Blocktypen block-types
Der Abschnitt blocks-Symbolleiste rendert ein Dropdown-Menü, in dem der aktuelle Block zwischen den konfigurierten Blocktypen gewechselt wird. Unterstützte Werte sind paragraph, h1-h6, code_block und blockquote.
blockquoteist ein Wrapping-Block (sein ProseMirror-contentistblock+), im Gegensatz zuparagraph/h1-h6/code_block, bei denen es sich um Textblöcke handelt. Wenn Sie Zitat auswählen, wird der aktuelle Block in ein<blockquote>eingeschlossen. Die Dropdown-Liste zeigt dann Zitat als ausgewählt an, während sich das Caret-Zeichen in einem befindet. Wenn Sie einen anderen Blocktyp auswählen (z. B. Absatz), während Sie in einem Anführungszeichen befinden, wird der Block zuerst aus dem Anführungszeichen entfernt, sodass auch das Anführungszeichen beibehalten wird. Dies spiegelt die Dropdown-Liste Blöcke von TinyMCE wider.- Da es sich um einen Wrapping-Knoten handelt, kann ein
<blockquote>mehrere Absätze, Listen oder sogar verschachtelte Anführungszeichen enthalten. Dadurch können extern erstellte Inhalte verlustfrei weitergeleitet werden: Sowohl TinyMCE (veraltete Inhalte) als auch Word (Einfügen) geben<blockquote><p>…</p></blockquote>aus (häufig mehrere Absätze), und diese Struktur wird beim Laden, Bearbeiten und Serialisieren beibehalten, anstatt reduziert zu werden. - Wie alle Blocktypen ist die Consumer-App Eigentümer der CSS-Datei, die visuelle Stile
<blockquote>, wo der RTE-Inhalt gerendert wird.
{
"toolbar": {
"blocks": ["paragraph", "h1", "h2", "h3", "code_block", "blockquote"],
"sections": ["blocks"],
},
"actions": {
"blockquote": {
"label": "Quote", // Custom dropdown label
},
},
}
Als Text einfügen paste-as-text
Die paste_text-Editor-Aktion ermöglicht einen standardmäßigen Workflow zum Einfügen als reiner Text .
- Standardbefehl: Mod-Shift-V (Befehl+Umschalt+V unter macOS, Strg+Umschalt+V unter Windows/Linux)
- Verhalten: Einfügen aus Text/Nur (Quellformatierung wird ignoriert)
- In Listen erstellen Zeilenumbrüche neue Listenelemente.
{
"toolbar": {
"editor": ["removeformat", "paste_text"]
},
"actions": {
"paste_text": {
"shortcut": "Mod-Shift-v",
"label": "Paste as Text"
}
}
}
Suchen und Ersetzen find-replace
Die find_and_replace-Editor-Aktion verwendet prosemirror-search (Übereinstimmungshighlights) plus ein von FIND_AND_REPLACE_PLUGIN_KEY eingegebenes Befehls-Plug-in.
- Integration: Fügen Sie den ProseMirror-Plug-ins Ihres Editors
createFindAndReplacePlugin()hinzu, wenntoolbar.editorfind_and_replaceeinbezieht. - API: Verwenden Sie
FIND_AND_REPLACE_PLUGIN_KEY.getState(state), um auffind,replaceNext,replaceAllundgetMatchCountzuzugreifen. - Stile: Stellen Sie sicher, dass Ihre App CSS für
.ProseMirror-search-matchund.ProseMirror-active-search-matchlädt (ausprosemirror-searchStil/search.cssoder Ihrem eigenen Äquivalent).
{
"toolbar": {
"editor": ["find_and_replace"],
"sections": ["editor"],
},
"actions": {
"find_and_replace": {
"label": "Find and replace",
},
},
}
Sonstige Aktionen other
Alle anderen Aktionen unterstützen grundlegende Anpassungen. Die folgenden Abschnitte sind verfügbar.
{
"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)
}
}
}
Vollständiges Beispiel example
Im Folgenden finden Sie ein Beispiel für eine vollständige Konfiguration.
[
{
"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"
}
}
}
}
]
Details zur Aktionsoption action-details
Mehrere Optionen bieten zusätzliche Details, die Sie beachten sollten.
wrapInParagraphs wrapInParagraphs
Die wrapInParagraphs für Listen steuert die HTML-Struktur.
wrapInParagraphs: false (Standard) 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>
Verwenden Sie wrapInParagraphs: true bei Bedarf:
- Rich-Formatierung in Listenelementen
- Mehrere Absätze pro Listenelement
- Konsistente Formatierung auf Blockebene
wrapInPicture
Die Option wrapInPicture für Bilder steuert die für Bildinhalte generierte HTML-Struktur.
wrapInPicture: false (Standard) wrapinpicture-false
<img src="image.jpg" alt="Description" />
wrapInPicture: true wrapinpicture-true
<picture>
<img src="image.jpg" alt="Description" />
</picture>
Verwenden Sie wrapInPicture: true bei Bedarf:
- Unterstützung responsiver Bilder mit
<source>. - Möglichkeiten der künstlerischen Leitung.
- Zukunftssicherheit für erweiterte Bildfunktionen.
- Konsistente Bildelementstruktur.
wrapInPicture: true aktiviert ist, können Bilder mit zusätzlichen <source> für verschiedene Medienabfragen und Formate erweitert werden, wodurch sie flexibler für responsives Design sind.Optionen für Link-Zielgruppe link-target
Die Option hideTarget für Links steuert, ob das Attribut target in generierten Links enthalten ist und ob das Dialogfeld für die Link-Erstellung ein Feld für die Zielauswahl enthält.
hideTarget: false (Standard) 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>
Deaktivieren von Links auf Bildern disableforimages
Die Option disableForImages für Links steuert, ob Benutzer Links auf Bildern und Bildelementen erstellen können. Dies gilt sowohl für Inline-<img> als auch für <picture> auf Blockebene.
disableForImages: false (Standard) disableforimages-false
Benutzer können Bilder auswählen und sie in Links einschließen.
<!-- 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
Die Link-Schaltfläche ist deaktiviert, wenn ein Bild oder Bild ausgewählt wird. Benutzer können nur Links auf Textinhalten erstellen.
<!-- 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>
Verwenden Sie disableForImages: true, wenn Sie Folgendes tun möchten:
- Wahrung der visuellen Konsistenz durch Verhinderung von verknüpften Bildern
- Vereinfachen Sie die Inhaltsstruktur, indem Sie Bilder von der Navigation trennen.
- Erzwingen von Inhaltsrichtlinien, die die Bildverknüpfung einschränken.
- Verringern Sie die Komplexität der Barrierefreiheit in Ihren Inhalten.
Tag-Optionen tag
Formataktionen ermöglichen den Wechsel zwischen HTML-Varianten.
bold<strong><b>italic<em><i>strike<del><s>Wählen Sie semantische Tags (<strong>, <em>, <del>) für bessere Barrierefreiheit und SEO.
Textfarbe color
Mit der Option “text_color” werden dem Editor Textfarbfunktionen hinzugefügt.
<!-- With color applied -->
<span style="color: #ff0000">Colored text</span>
<!-- Color removed -->
Plain text
Das Plug-in analysiert auch veraltete <font color="..."> aus Gründen der Abwärtskompatibilität.
Tastaturbefehle keyboard-shortcuts
Bei den Tastaturbefehlen wird/werden das Format Mod-Key(en) verwendet, wobei:
Mod=Cmdunter Mac,Ctrlunter Windows/Linux- Beispiele:
Mod-B,Mod-Shift-8,Mod-Alt-1
Nicht unterstützter HTML unsupported-html
Unbekannte HTML-Tags werden standardmäßig entfernt, wenn sie vom Editor analysiert werden. Um sie beizubehalten, melden Sie sich über die unsupportedHtml an:
const rteConfig = {
unsupportedHtml: true, // preserve unknown HTML tags (default: false)
};
false (Standard)trueunsupportedHtmlOptions.structuralTags (optional) unsupportedhtmloptions
Verwenden Sie unsupportedHtmlOptions.structuralTags, um zu steuern, welche zusätzlichen strukturellen Tags als unterstützte HTML behandelt werden.
const rteConfig = {
unsupportedHtml: true,
unsupportedHtmlOptions: {
structuralTags: ["div", "section"], // preserve configured tags as supported
},
};
[]["div"]<div> wird als unterstützter HTML behandelt und nicht als nicht unterstützter eingeschlossen.["div", "section"]<div> als auch <section> werden als unterstützter HTML behandelt und nicht als nicht unterstützter eingeschlossen.unsupportedHtmlOptions wirkt sich nur auf das Verhalten aus, wenn unsupportedHtml aktiviert ist.Wenn diese Option aktiviert ist, rendert der Editor nicht unterstützte Knoten mit Wrapper-Tags (unsupported-block/unsupported-inline) und Wrapper-Klassen. Consumer-Apps sollten den Stil für diese Klasse bereitstellen (z. B. Rahmen, Abstand, Hintergrund). Die Tag-Kennzeichnung innerhalb des Blocks verwendet rte-unsupported-label, die auch angepasst werden kann.
rte-unsupported-blockrte-unsupported-inlinerte-unsupported-label
Verbraucher-Apps sollten Stile für diese Klassen bereitstellen (z. B. Rahmen, Abstand, Hintergrund und Inline-Ausrichtung).
Wenn unsupportedHtml aktiviert ist, sollte der Benutzer das nicht unterstützte Knoten-Plug-in hinzufügen (z. B. createUnsupportedNodesPlugin()), damit beim Kopieren eines nicht unterstützten Blocks oder Inline-Knotens der innere Text in die Zwischenablage eingefügt wird (nur Text) und Benutzer den Inhalt an einer anderen Stelle einfügen können.