
Sprog 🇩🇰 Dansk
Baggrund
API
Udvikling af udvidelser
Kontekst
FastComments giver mulighed for at udvide vores kernefunktionalitet via scripts, som vi kalder Extensions.
En Extension kan tilføje yderligere markup til kommentarboksen, registrere hændelseslyttere og køre vilkårlig kode.
Her finder du eksempler på udvidelser, vi har i produktion, samt dokumentation om, hvordan man skriver udvidelser.
Udvidelsens livscyklus 
Scriptet for hver udvidelse hentes og køres, før kommentarboksen begynder at hente det første sæt kommentarer og gengive brugergrænsefladen.
Ved første indlæsning vil følgende data blive tilknyttet udvidelsesobjektet:
config- En reference tilconfig-objektet.translations- En reference tiltranslations-objektet.commentsById- En reference til alle kommentarer efter id.root- En reference til rod-DOM-noden.
Udvidelser bør overskrive de ønskede funktioner, som kommentarboksen vil kalde på de relevante tidspunkter.
Definition af en udvidelse 
Den mindste mulige udvidelse er:
Run 
For eksemplets skyld, gem dette som my-extension.js, og gør det tilgængeligt på https://example.com/my-extension.min.js.
Denne udvidelse gør ikke noget; ved indlæsning henter den udvidelsesobjektet, som er oprettet af kernekommentarbiblioteket.
This Extension object is a singleton and is not shared with any other extensions.
Dernæst, for at indlæse vores udvidelse, skal vi fortælle kommentar-widgeten om den. For eksempel:
Run 
For funktionelle eksempler, se næste afsnit.
Eksempler på udvidelser 
Hos FastComments skriver vi vores egne udvidelser ved hjælp af det samme API. Du kan se den ikke-minificerede kode for disse udvidelser på følgende endepunkter:
Dark Mode
Dark Mode-udvidelsen indlæses betinget, når en "dark" side opdages. Denne udvidelse tilføjer blot noget CSS til kommentar-widget'en. På denne måde behøver vi ikke at indlæse dark mode CSS, når det ikke er nødvendigt.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderation
Når den aktuelle bruger er moderator, bruger vi moderation-udvidelsen.
Dette er et godt eksempel på at tilføje klikbaserede event-lyttere, lave API-forespørgsler og tilføje elementer til kommentarmenuen og kommentarområderne.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live Chat
Live Chat-udvidelsen (i kombination med anden konfiguration og styling) gør kommentar-widget'en til en live chat-komponent.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Udvidelsesobjektet 
Udvidelsesobjektet består af følgende definition:
Run 
Udvidelses-API 
Interacting with the Extension is simple, as we simply define references to functions we want invoked.
To build off the example earlier, let's say we want to add HTML to the top of each comment:
Run 
Whenever you return HTML like this, it will get merged into the UI via a dom-diffing algorithm.
Manually triggering the re-render of a comment
We can wait for the initial page load and manually re-render a comment by invoking reRenderComment:
Run 