Ich kann bestätigen, dass der CKEditor 5 im Gegensatz zu CKEditor 4 mehrere gleichzeitig gewählte Block Styles zulässt.
In TYPO3 11 mit CKEditor 4 wurden Block-Stile noch per editor.config.stylesSet
definiert:
imports:
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" }
- { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Plugins.yaml" }
editor:
config:
stylesSet:
- { name: "First Block Style", element: "p", attributes: { 'class': 'first-block-style' } }
- { name: "Second Block Style", element: "p", attributes: { 'class': 'second-block-style' } }
Anschließend ließ sich immer nur ein Block-Style gleichzeitig auswählen.
editor.config.stylesSet
ist in CKEditor 5 jedoch veraltet und wird per interner TYPO3\CMS\Core\Configuration\CKEditor5Migrator
-Klasse in TYPO3 12 automatisch migriert, sofern nicht bereits eine Angabe unter dem neuen Pfad editor.config.style.definitions
in der aktuelle genutzten Konfiguration existiert. Falls dies der Fall ist, wird einfach alles, was in stylesSet
definiert wurde, durch den Migrator verworfen.
Die neue Schreibweise lautet also ab TYPO3 12 mit CKEditor 5 wie folgt:
imports:
- { resource: 'EXT:rte_ckeditor/Configuration/RTE/Default.yaml' }
editor:
config:
style:
definitions:
- { name: "First Block Style", element: "p", classes: ['first-block-style'] }
- { name: "Second Block Style", element: "p", classes: ['second-block-style'] }
Randnotiz: In TYPO3 12 konnte ich nun direkt die Default.yaml
einbinden, um die Standard-Konfiguration als Basis für die eigene Erweiterung zu nutzen. In TYPO3 11 gibt es diese Datei zwar auch aber sie verhindert, im Gegensatz zu TYPO3 12, die Ausgabe des Block-Style Selektors (mit Button-Identifikator Styles
) per editor.config.removeButtons
.
Alle Block-Stile sind nun in TYPO3 12 im CKEditor 5 in Kombination wählbar. Es wird entsprechend gekennzeichnet, dass "Mehrere Stile" gewählt wurden.
Das resultierende HTML weißt auch alle Klassen der gewählten Stile auf:
<p class="first-block-style second-block-style">
Mein Absatz
</p>
Was halte ich davon?
Ich bin angesichts der komplexen Konfigurationsmöglichkeiten des CKEditor 5 aktuell noch unsicher, ob sich nicht irgendwo doch eine Option verbirgt, mit der man das Verhalten der wählbaren Block-Stile zueinander beeinflussen kann. Falls dies tatsächlich nicht möglich ist, würde ich eine solche Funktion vermissen, da sie Voraussetzung für eine nahtlose Migration von TYPO3 11 zu 12 ist.
Ich persönlich empfinde es ansonsten eher als Bereicherung einem Element mehrere Block-Styles geben zu können. Gerade in Zeiten von "Utility Classes" wie sie beispielsweise in Bootstrap oder Tailwind verwendet werden, kann man so dem Redakteur mehr Flexibilität einräumen, ohne jede denkbare Klassen-Kombination vorab als Eintrag definieren zu müssen.
Ob dieses Verhalten insgesamt gut oder schlecht ist hängt aber sehr stark vom jeweiligen Use-Case ab. Aus diesem Grund wäre es schade, wenn sich das ehemalige Verhalten nicht irgendwie wieder herstellen ließe.