
Jezik 🇸🇮 Slovenščina
Ozadje
API
Pisanje razširitev
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 
Za namen tega primera shranite to kot my-extension.js in poskrbite, da bo dostopna na https://example.com/my-extension.min.js.
Ta razširitev ne naredi ničesar, le ob nalaganju pridobi objekt razširitve, ustvarjen s strani osnovne knjižnice za komentarje.
Ta objekt Extension je singleton in ni v skupni rabi z drugimi razširitvami.
Nato, da naložimo našo razširitev, moramo o njej obvestiti gradnik za komentarje. Na primer:
Run 
Za funkcionalne primere si oglejte 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 extension je sestavljen iz naslednje definicije:
Run 
API razširitve 
Interakcija z Extension je preprosta, saj le definiramo reference na funkcije, ki jih želimo izvesti.
Če nadaljujemo prejšnji primer, recimo, da želimo dodati HTML na vrh vsakega komentarja:
Run 
Kadar koli vrnete HTML takole, bo vgrajen v uporabniški vmesnik prek algoritma za dom-diffing.
Ročno sprožitev ponovnega izrisa komentarja
Lahko počakamo na začetno nalaganje strani in ročno ponovno izrišemo komentar z uporabo reRenderComment:
Run 