
Sprache 🇩🇪 Deutsch
Hintergrund
API
Erweiterungen schreiben
Entwicklung von Erweiterungen
Kontext
FastComments bietet die Möglichkeit, unsere Kernfunktionalität durch Skripte zu erweitern, die wir Extensions nennen.
Eine Extension kann dem Kommentar-Widget zusätzliches Markup hinzufügen, Event-Listener registrieren und beliebigen Code ausführen.
Hier finden Sie Beispiele für Extensions, die wir in der Produktion einsetzen, sowie Dokumentation dazu, wie man Extensions schreibt.
Lebenszyklus einer Erweiterung 
Das Skript für jede Erweiterung wird abgerufen und aufgerufen, bevor das Kommentar-Widget beginnt, das erste Set von Kommentaren abzurufen und die Benutzeroberfläche zu rendern.
Beim ersten Laden werden die folgenden Daten dem Erweiterungsobjekt angehängt:
config- Eine Referenz auf dasconfig-Objekt.translations- Eine Referenz auf dastranslations-Objekt.commentsById- Eine Referenz auf alle Kommentare nach ID.root- Eine Referenz auf den Root-DOM-Knoten.
Erweiterungen sollten die gewünschten Funktionen überschreiben, die das Kommentar-Widget zu den entsprechenden Zeitpunkten aufrufen wird.
Definieren einer Erweiterung 
Die kleinstmögliche Erweiterung wäre:
Run 
Für dieses Beispiel speichern Sie dies als my-extension.js und machen es unter https://example.com/my-extension.min.js verfügbar.
Diese Erweiterung macht nichts, außer dass sie beim Laden das von der Core-Kommentarbibliothek erstellte Erweiterungsobjekt abruft.
Dieses Extension-Objekt ist ein Singleton und wird mit keiner anderen Erweiterung geteilt.
Als Nächstes müssen wir, um unsere Erweiterung zu laden, das Kommentar-Widget darüber informieren. Zum Beispiel:
Run 
Funktionale Beispiele finden Sie im nächsten Abschnitt.
Beispielerweiterungen 
Bei FastComments schreiben wir unsere eigenen Erweiterungen, die dieselbe API verwenden. Sie können den unminifizierten Code für diese Erweiterungen unter den folgenden Endpunkten einsehen:
Dunkelmodus
Die Dunkelmodus-Erweiterung wird bedingt geladen, wenn eine „dunkle“ Seite erkannt wird. Diese Erweiterung fügt dem Kommentar-Widget einfach etwas CSS hinzu. Auf diese Weise müssen wir das CSS für den Dunkelmodus nicht laden, wenn es nicht benötigt wird.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderation
Wenn der aktuelle Benutzer ein Moderator ist, verwenden wir die Moderations-Erweiterung.
Dies ist ein gutes Beispiel dafür, klickbasierte Event-Listener hinzuzufügen, API-Anfragen zu stellen sowie Elemente zum Kommentar-Menü und zu Kommentarbereichen hinzuzufügen.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live-Chat
Die Live-Chat-Erweiterung (in Kombination mit anderer Konfiguration und Gestaltung) verwandelt das Kommentar-Widget in eine Live-Chat- Komponente.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Das Erweiterungsobjekt 
Das Extension-Objekt besteht aus folgender Definition:
Run 
Die Erweiterungs-API 
Die Interaktion mit der Extension ist einfach, da wir lediglich Verweise auf Funktionen definieren, die aufgerufen werden sollen.
Um am vorherigen Beispiel anzuknüpfen, nehmen wir an, wir möchten HTML am Anfang jedes Kommentars hinzufügen:
Run 
Wann immer Sie auf diese Weise HTML zurückgeben, wird es mittels eines DOM-Diffing-Algorithmus in die UI integriert.
Manuelles Auslösen des erneuten Renderns eines Kommentars
Wir können auf das initiale Laden der Seite warten und einen Kommentar manuell neu rendern, indem wir reRenderComment aufrufen:
Run 