
Jezik 🇸🇮 Slovenščina
Ozadje
API
Razvijanje razširitev
Kontekst
FastComments omogoča razširitev naše osnovne funkcionalnosti s skriptami, ki jim pravimo Extensions.
Extension lahko doda dodatno označevanje (markup) v pripomoček za komentarje, doda poslušalce dogodkov in izvaja poljubno kodo.
Tukaj boste našli primere razširitev, ki jih imamo v produkciji, kot tudi dokumentacijo o tem, kako pisati razširitve.
Življenjski cikel razširitve 
Skript za vsako razširitev se pridobi in zažene, preden pripomoček za komentarje začne pridobivati prvi niz komentarjev in upodabljati uporabniški vmesnik.
Ob prvem nalaganju bodo na objekt razširitve pripeti naslednji podatki:
config- Sklic na objektconfig.translations- Sklic na objekttranslations.commentsById- Sklic na vse komentarje po id.root- Sklic na korensko DOM vozlišče.
Razširitve naj preglasijo želene funkcije, ki jih bo pripomoček za komentarje poklical ob ustreznih časih.
Opredelitev razširitve 
Najmanjša možna razširitev bi bila:
Run 
V ta primer shranite datoteko kot my-extension.js, in jo naredite dostopno na https://example.com/my-extension.min.js.
Ta razširitev ne počne ničesar, ob nalaganju pa pridobi objekt razširitve, ki ga ustvari osnovna knjižnica komentarjev.
This Extension object is a singleton and is not shared with any other extensions.
Da naložimo našo razširitev, moramo pripomočku za komentarje povedati za njo. Na primer:
Run 
Za funkcionalne primere glejte naslednji razdelek.
Primeri razširitev 
Pri FastComments pišemo naše razširitve, ki uporabljajo isti API. Kodo brez minifikacije za te razširitve si lahko ogledate na naslednjih končnih točkah:
Temni način
Razširitev Temni način se pogojno naloži, ko je zaznana "dark" stran. Ta razširitev preprosto doda nekaj CSS v vtičnik za komentarje. Tako ni treba naložiti CSS za temni način, kadar ni potreben.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderacija
Ko je trenutni uporabnik moderator, uporabimo razširitev za moderacijo.
To je dober primer za dodajanje poslušalcev dogodkov na klik, pošiljanje API zahtev, dodajanje v meni komentarjev in območja komentarjev.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Klepet v živo
Razširitev Klepet v živo (v kombinaciji z drugo konfiguracijo in stiliranjem) spremeni vtičnik za komentarje v komponento za klepet v živo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Objekt razširitve 
Objekt razširitve vsebuje naslednjo definicijo:
Run 
API razširitve 
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 