Nahtlose CKEditor 5 Integration in Nuxt3:
Eine Schritt-für-Schritt-Anleitung
Dieser Artikel bietet ein detailliertes Beispiel für die Integration des CKEditor 5 in ein Nuxt.js 3-Projekt. Warum entstand die Idee für diesen Artikel? Das in Entwicklung befindliche Projekt nutzt einen Stack von Vue3 + Nuxt.js 3 + PrimeVue. PrimeVue hat bereits einen integrierten Editor, aber er basiert auf Quill. Dieser Editor ist gut für einen schnellen Start, aber das Projekt erforderte: das Speichern des eingegebenen Inhalts als HTML (Quill verwendet sein eigenes Delta-Format), da der Inhalt später in einer Flutter-Webanwendung gerendert werden musste. Es war notwendig, eine minimale Kompatibilität mit dem vorherigen Projekt sicherzustellen, von dem die Migration stattfand, in dem CKEditor 4 verwendet wurde.
Projektstart
Das Projekt wird Node v20.11.0 und npm-Version 10.2.4 verwenden

Wir werden die Beispielentwicklung in einem sauberen Projekt durchführen, das mit dem Initialisierungsbefehl gemäß der offiziellen Nuxt-Dokumentation erstellt wurde.
Jetzt müssen wir den Kernteil des Editors installieren. Wichtig! Zuerst ist es notwendig, die verfügbaren Versionen für die Pakete zu überprüfen. Alle Pakete für den Editor (Plugins und Erweiterungen) sollten mit derselben Version installiert werden.
Wir wählen die letzte stabile Version aus den verfügbaren Optionen. In diesem Fall wird es `43.0.0` sein.
Wo:
`@ckeditor/ckeditor5-vue@6.0.0` ist die Komponente zur Integration des Editors
`@ckeditor/ckeditor5-build-classic@43.0.0` ist der Kern-Build des Editors.
Nach der Installation der Paketversionen müssen diese eingefroren werden. Die endgültige `package.json` wird ungefähr so aussehen:
Als nächstes lassen Sie uns eine Seite erstellen, die als Hauptseite für unser Beispiel dient, auf der wir später den Editor platzieren werden:
Wir werden die Seite `pages/index.vue` mit dem einfachsten Inhalt füllen:
Überprüfen Sie die Funktionalität, indem Sie den Server starten:

Lassen Sie uns eine Komponente erstellen, die den integrierten Editor umschließt:
Wir füllen die Komponente `components/rich-editor.vue` mit einer Platzhalter-Vorlage:
Und dann werden wir die Komponente mit der Hauptvorlage in pages/index.vue
verbinden:
CKEditor verbinden
Um den Editor zu verbinden, müssen wir:
Eine erste Editor-Konfiguration erstellen oder einen vorhandenen Build verwenden. In unserem Fall werden wir mit einem Basis-Build beginnen, den wir später durch unseren eigenen benutzerdefinierten Build ersetzen werden.
Ein Plugin für das Nuxt.js-Projekt erstellen und verbinden.
Die erstellte Editor-Konfiguration zur Komponente hinzufügen, die den Editor umschließt.
CKEditor 5 wird als Plugin in das Projekt integriert. Daher müssen wir zuerst dieses Plugin erstellen:
Lassen Sie uns die Plugin-Konfiguration in `plugins/ckeditor.ts` erstellen:
Um das Plugin zu verbinden, müssen wir die Konfigurationsdatei des Projekts `nuxt.config.ts` bearbeiten:
Es ist wichtig zu beachten, dass in der aktuellen Projektkonfiguration die Option ssr: false
verwendet wird, was bedeutet, dass es nicht notwendig ist, anzugeben, in welchen Komponenten sie gerendert werden sollen (Client oder Server).
Jetzt lassen Sie uns den aktuellen Editor-Build zur vorher vorbereiteten Komponente components/rich-editor.vue
hinzufügen:
Lassen Sie uns den Server starten und überprüfen:

Der Editor ist einsatzbereit. Wenn die grundlegende Funktionalität für Sie ausreicht, können Sie hier aufhören.
Hinweise: Bei der Installation neuer Versionen des Editors sollten Sie die Version des ckeditor5-vue-Pakets nicht sofort erhöhen, da möglicherweise keine Unterstützung für die neuesten Versionen des Editors hinzugefügt wird. Wenn es nicht mit der neuesten stabilen Version funktioniert, versuchen Sie, auf eine niedrigere Hauptversion des Pakets zurückzurollen (z. B. 7.0.0 → 6.0.0)
CKEditor-Konfiguration
Wir haben nur den grundlegenden Editor-Build verbunden, aber was ist, wenn Sie die erforderliche Funktionalität konfigurieren müssen? Dazu können Sie eine zusätzliche Konfiguration oder mehr als eine erstellen.
Informationen zu allen möglichen pluggable Funktionen finden Sie im entsprechenden Abschnitt der Editor-Dokumentation.
Um eine neue Konfiguration für den Editor zu erstellen, verwenden wir die Datei `utils/custom-editor.ts`:
Der Standort der Konfigurationsdatei ist nicht streng definiert, sie kann in einem für Sie bequemen Verzeichnis gemäß dem im Projekt integrierten Arbeitsablauf abgelegt werden.
Als nächstes müssen Sie die entsprechenden Plugins installieren, die für die gewünschte Funktionalität verantwortlich sind. Wie bereits erwähnt, müssen Plugins gemäß der Version des verwendeten Editors ausgewählt werden. In diesem Artikel wird die Version `43.0.0` betrachtet. Wie stellt man fest, was installiert werden muss? Zum Beispiel nehmen wir die Funktion zum Einfügen von Zitaten. Der relevante Dokumentationsartikel beschreibt die Funktionsweise und Verbindung des Plugins, und der Name des Plugins muss im Projektrepository gefunden werden:

Lassen Sie uns das Plugin und mehrere zusätzliche Pakete installieren, die wir für die Erstellung unserer eigenen Konfiguration benötigen:
Wo:
`@ckeditor/ckeditor5-core@43.0.0` zur Verwendung von Typen in der Konfiguration
`@ckeditor/ckeditor5-essentials@43.0.0` ein Satz minimaler Funktionen für die Funktion des Editors
`@ckeditor/ckeditor5-block-quote@43.0.0` ein Plugin zum Verbinden von Zitaten
`@ckeditor/ckeditor5-paragraph@43.0.0` ein Plugin für die Möglichkeit, Absätze im Editor zu erstellen. Wichtig! Ohne dieses Plugin können Sie keinen Text im Editorfeld eingeben.
Ein separater Befehl entfernt den `@ckeditor/ckeditor5-build-classic`-Build, da wir unsere eigene Konfiguration einrichten
Datei `package.json` nach der Installation:
Fügen Sie die Konfiguration und das installierte Plugin zur Datei `utils/custom-editor.ts` hinzu:
Es ist wichtig zu beachten, dass Folgendes in der Konfiguration zu berücksichtigen ist:
Sie müssen Stile aus `ckeditor5.css` einfügen
Plugins werden aus dem `ckeditor5`-Paket importiert, und diese Methode der Einfügung ist seit der Version `42.0.0` im Editor verfügbar. Davor wurde eine andere Methode zum direkten Import von Plugins aus installierten Paketen verwendet. Alte Methoden der Einfügung finden Sie in den entsprechenden Abschnitten der Dokumentation
Sie müssen `toolbar` in der Konfiguration beschreiben, da sie die Benutzeroberfläche des Editors beschreibt
Fügen Sie als Nächstes eine neue Konfiguration zur Plugin-Konfigurationsdatei `plugins/ckeditor.ts` hinzu:
In der Wrapper-Komponente `components/rich-editor.vue` müssen Sie die Verwendung der neuen Konfiguration angeben:
Lassen Sie uns starten und die Funktionsweise des Editors überprüfen:

Somit ist es notwendig, um die gewünschte Funktionalität zu verbinden:
Installieren Sie das Plugin über den Paketmanager
Fügen Sie das Plugin zur Konfiguration hinzu
Setzen Sie die entsprechende Funktionin die Symbolleiste
Beispiel CKEditor-Konfiguration des Autors
Im Folgenden finden Sie ein Beispiel für eine erweiterte Konfiguration. Installation von Plugins:
Die Konfiguration in der Datei `utils/custom-editor.ts` mit diesen Plugins wird folgendermaßen aussehen:
Nach der Verbindung der Plugins wird der Editor folgendermaßen aussehen:

Zusätzliche CKEditor-Konfigurationen
Zusätzlich zur Haupteditor-Konfiguration ist es auch möglich, so viele zusätzliche Konfigurationen zu erstellen, wie Sie möchten. Warum ist das notwendig? Zum Beispiel, um die Funktionalität für bestimmte Benutzer einzuschränken oder ein zusätzliches Feld zu implementieren, das einen begrenzten Funktionsumfang enthalten wird (zum Beispiel formatierte Überschriften).
Lassen Sie uns die Konfigurationsdatei `utils/custom-editor.ts` mit einer neuen Konfiguration für das erweiterte Eingabefeld ergänzen:
Erweiterung des Projektplugins `plugins/ckeditor.ts` mit einer neuen Editor-Konfiguration:
Lassen Sie uns eine neue Wrapper-Komponente für das neue Feld erstellen:
Als nächstes füllen wir die Komponente `components/extended-input-field.vue` aus:
Fügen Sie eine neue Komponente zur Seite in `pages/index.vue` hinzu:
Überprüfen wir das Ergebnis:

Fazit
Die Integration von CKEditor 5 in ein Nuxt.js 3-Projekt eröffnet leistungsstarke Funktionen zur Bearbeitung von Rich Text für Ihre Anwendung. Indem Sie die Schritt-für-Schritt-Anleitung in diesem Artikel befolgt haben, haben Sie gelernt, wie Sie:
Ein grundlegendes Nuxt.js 3-Projekt einrichten
CKEditor 5 installieren und konfigurieren
Ein benutzerdefiniertes Build mit spezifischen Plugins und Funktionen erstellen
Mehrere Editor-Konfigurationen für verschiedene Anwendungsfälle implementieren
Die Flexibilität von CKEditor 5 ermöglicht es Ihnen, den Editor an Ihre spezifischen Bedürfnisse anzupassen, von einem voll ausgestatteten Rich-Text-Editor bis hin zu einem eingeschränkten Eingabefeld. Diese Anpassung stellt sicher, dass Sie das richtige Bearbeitungserlebnis für Ihre Benutzer bieten können, egal, ob sie komplexe Formatierungsoptionen oder eine einfachere Schnittstelle benötigen.
Einige wichtige Erkenntnisse:
Stellen Sie immer sicher, dass die Plugin-Versionen mit Ihrer CKEditor-Core-Version übereinstimmen
Nutzen Sie das Plugin-System, um Funktionen nach Bedarf hinzuzufügen oder zu entfernen
Erstellen Sie mehrere Editor-Konfigurationen, um verschiedenen Teilen Ihrer Anwendung gerecht zu werden
Achten Sie auf die Konfiguration der Symbolleiste, um ein reibungsloses Benutzererlebnis zu bieten
Während Sie weiterhin Ihre Nuxt.js-Anwendung entwickeln, können Sie Ihre CKEditor-Implementierung weiter verfeinern. Ziehen Sie in Betracht, erweiterte Funktionen wie benutzerdefinierte Plugins, kollaborative Bearbeitung oder Integration mit Ihrem Backend für Bild-Uploads und Inhaltsverwaltung zu erkunden.
Denken Sie daran, dass die CKEditor-Dokumentation eine unschätzbare Ressource für die Fehlersuche und das Entdecken neuer Funktionen ist. Während sowohl Nuxt.js als auch CKEditor weiterentwickelt werden, bleiben Sie über die neuesten Versionen und Best Practices informiert, um sicherzustellen, dass Ihre Lösung zur Bearbeitung von Rich Text robust und effizient bleibt.
Durch das Meistern der Integration von CKEditor 5 in Ihr Nuxt.js 3-Projekt haben Sie ein leistungsstarkes Werkzeug zu Ihrem Webentwicklungs-Toolkit hinzugefügt, das die Erstellung von Inhalten in Ihrer Anwendung verbessert.