
Sprache 🇩🇪 Deutsch
Hintergrund
API
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 
For the sake of this example, save this as my-extension.js, and make it available at https://example.com/my-extension.min.js.
This extension does not do anything, except on load it fetches the extension object created by the core comment library.
This Extension object is a singleton and is not shared with any other extensions.
Next, to load our extension, we have to tell the comment widget about it. For example:
Run 
For functional examples, see the next section.
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 Erweiterungsobjekt besteht aus der folgenden 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 