FastComments.com

Dodajte vgrajene žive komentarje v dokumente, knjige itd.

FastComments Collab Chat omogoča uporabnikom, da označijo in opremijo z opombami poljubno besedilno vsebino na vaši spletni strani ter ustvarijo nitne razprave, vezane na izbrane odseke besedila. Uporabniki lahko izberejo besede, stavke ali cele odstavke, da neposredno v vaši vsebini začnejo sodelovalne pogovore.

Ta funkcija je idealna za uredniške povratne informacije, okolja za skupinsko branje, izobraževalne platforme, pregledovanje dokumentov in vse situacije, kjer želite kontekstualne razprave, pripete na določen del besedila.

Upoštevajte, da so ti dokumenti specifični za funkcionalnost Collab Chat. Komentarje lahko dodate tudi za vsebine z mnogimi stranmi, kot so knjige, z eno nitjo na stran, brez uporabe collab chata. FastComments prav tako ne zaračunava na stran ali na nit. Collab Chat je torej namenjen primerom, ko želite uporabnikom omogočiti izbiro besedila in komentiranje označenega odseka besedila.

Primer si lahko ogledate tukaj.

Primeri Internal Link

Osnovni primer

Najenostavnejši način uporabe Collab Chata je ciljanje enega vsebinskega kontejnerja. Ta primer prikazuje, kako omogočiti besedilne anotacije na članku:

Osnovni primer Collab Chata
Copy CopyRun External Link
1
2<!DOCTYPE html>
3<html>
4<head>
5 <title>My Article with Collab Chat</title>
6</head>
7<body>
8 <div id="article-content" style="min-height: 500px">
9 <h1>My Article Title</h1>
10 <p>This is a paragraph that users can annotate. Simply highlight any text to start a discussion!</p>
11 <p>You can have multiple paragraphs, and users can highlight text across any of them.</p>
12 </div>
13
14 <script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
15 <script>
16 FastCommentsCollabChat(document.getElementById('article-content'), {
17 tenantId: 'demo'
18 });
19 </script>
20</body>
21</html>
22

Primer s prilagojenim URL ID-jem (za stran knjige, članek itd.)

Privzeto Collab Chat uporablja URL strani v kombinaciji s potjo elementa in razponom besedila za identifikacijo pogovorov. Lahko določite svoj urlId, da boste imeli več nadzora nad tem, kako so pogovori združeni:

Collab Chat s prilagojenim URL ID-jem
Copy Copy
1
2<script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
3<script>
4 FastCommentsCollabChat(document.getElementById('article-content'), {
5 tenantId: 'demo',
6 urlId: 'book-one-page-2'
7 });
8</script>
9

To je uporabno, če se struktura vaših URL-jev spremeni, vendar želite ohraniti enake pogovore, ali če želite deliti enake anotacije pogovorov med več stranmi.

Primer s temnim načinom

Če ima vaše spletno mesto temno ozadje, omogočite podporo temnega načina, da zagotovite pravilen videz uporabniškega vmesnika klepeta:

Collab Chat s temnim načinom
Copy CopyRun External Link
1
2<!DOCTYPE html>
3<html>
4<head>
5 <title>My Article with Collab Chat - Dark Mode</title>
6 <style>
7 body {
8 background-color: #1a1a1a !important;
9 color: #e0e0e0 !important;
10 font-family: system-ui, -apple-system, sans-serif;
11 padding: 20px;
12 margin: 0;
13 }
14 #article-content {
15 max-width: 800px;
16 margin: 0 auto;
17 background-color: #2d2d2d;
18 padding: 20px;
19 border-radius: 8px;
20 }
21 h1 {
22 color: #ffffff !important;
23 }
24 p {
25 color: #e0e0e0 !important;
26 line-height: 1.6;
27 }
28 .fastcomments-collab-chat-top-bar {
29 background-color: #2d2d2d !important;
30 color: #e0e0e0 !important;
31 border-bottom: 1px solid #444 !important;
32 }
33 </style>
34</head>
35<body>
36 <div id="article-content" style="min-height: 500px">
37 <h1>My Article Title</h1>
38 <p>This is a paragraph that users can annotate. Simply highlight any text to start a discussion!</p>
39 <p>You can have multiple paragraphs, and users can highlight text across any of them.</p>
40 </div>
41
42 <script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
43 <script>
44 FastCommentsCollabChat(document.getElementById('article-content'), {
45 tenantId: 'demo',
46 hasDarkBackground: true
47 });
48 </script>
49</body>
50</html>
51

Primer z onemogočeno zgornjo vrstico

Privzeto Collab Chat prikaže zgornjo vrstico s številom uporabnikov in številom razprav. To lahko onemogočite:

Collab Chat brez zgornje vrstice
Copy CopyRun External Link
1
2<!DOCTYPE html>
3<html>
4<head>
5 <title>My Article with Collab Chat - No Top Bar</title>
6</head>
7<body>
8 <div id="article-content" style="min-height: 500px">
9 <h1>My Article Title</h1>
10 <p>This is a paragraph that users can annotate. Simply highlight any text to start a discussion!</p>
11 <p>You can have multiple paragraphs, and users can highlight text across any of them.</p>
12 </div>
13
14 <script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
15 <script>
16 FastCommentsCollabChat(document.getElementById('article-content'), {
17 tenantId: 'demo',
18 topBarTarget: null
19 });
20 </script>
21</body>
22</html>
23

Primer s povratnim klicem za štetje komentarjev

S pomočjo povratnega klica commentCountUpdated lahko spremljate, kdaj so komentarji dodani ali posodobljeni:

Collab Chat s povratnim klicem za štetje komentarjev
Copy Copy
1
2<script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
3<script>
4 FastCommentsCollabChat(document.getElementById('article-content'), {
5 tenantId: 'demo',
6 commentCountUpdated: function(count) {
7 console.log('Total comments:', count);
8 document.getElementById('comment-badge').textContent = count;
9 }
10 });
11</script>
12

Primer z več odseki

Collab Chat lahko inicializirate na več ločenih odsekih vaše strani. Vsak odsek bo imel svoje neodvisne anotacije:

Collab Chat na več odsekih
Copy Copy
1
2<div id="intro-section">
3 <h2>Introduction</h2>
4 <p>Content for the introduction...</p>
5</div>
6
7<div id="main-section">
8 <h2>Main Content</h2>
9 <p>Content for the main article...</p>
10</div>
11
12<script src="https://cdn.fastcomments.com/js/embed-collab-chat.min.js"></script>
13<script>
14 // Inicializiraj na uvodnem odseku
15 FastCommentsCollabChat(document.getElementById('intro-section'), {
16 tenantId: 'demo',
17 urlId: 'my-article-intro'
18 });
19
20 // Inicializiraj na glavnem odseku
21 FastCommentsCollabChat(document.getElementById('main-section'), {
22 tenantId: 'demo',
23 urlId: 'my-article-main'
24 });
25</script>
26

Dodajanje komentarjev v živo v spletne knjige Internal Link

Lahko inicializirate Collab Chat za vsako stran posebej, če želite, in imate ločene niti za vsako stran; preprosto posredujte parameter urlId z vrednostjo, kot je book-one-page1. Ta konfiguracija deluje tudi z običajnim pripomočkom za komentarje.

Obnašanje pri izbiri besedila Internal Link

Kako deluje izbira besedila

Ko uporabniki izberejo besedilo znotraj kontejnerja Collab Chat, pripomoček zajame to izbiro in jim omogoči začetek razprave. Izbira je lahko tako majhna kot ena beseda ali pa obsega več odstavkov, ki segajo čez različne elemente.

Zamik pri izbiri

Na namiznih napravah je 3,5-sekundni zamik med trenutkom, ko uporabnik izbere besedilo, in trenutkom, ko se prikaže poziv za razpravo. To prepreči utripanje uporabniškega vmesnika, ko uporabniki besedilo le označujejo za kopiranje ali branje. Na mobilnih napravah se poziv prikaže takoj, saj je izbira besedila na zaslonih na dotik bolj premišljena.

Enolični ID-ji pogovorov

Vsak pogovor dobi enoličen urlId, ki združuje URL strani, pot DOM elementa in serializirano območje besedila. To zagotavlja, da vsaka izbira besedila ustvari ločen pogovor, ki ga je mogoče kasneje znova najti.

Če v svoji konfiguraciji navedete po meri urlId, bo ta združen s potjo elementa in območjem besedila za ustvarjanje končnega identifikatorja.

Vizualni poudarki

Ko za določeno izbiro besedila obstaja razprava, to besedilo dobi vizualni poudarek. Poudarek je izveden z ozadinskimi barvami in se prikaže ob premiku miške ali ko je ustrezno okno klepeta odprto.

Sistem poudarjanja deluje tako, da izbrano besedilo zavije v poseben element, ki ga je mogoče stilizirati. Ta pristop zagotavlja, da poudarki ostanejo natančni tudi, ko je osnovna HTML struktura zapletena.

Pozicioniranje okna klepeta

Ko uporabnik klikne na poudarek ali ustvari novo označbo, se ob izbranem besedilu prikaže okno klepeta. Pripomoček samodejno izračuna najboljši položaj za to okno glede na razpoložljiv prostor v pogledu.

Sistem pozicioniranja uporablja CSS razrede, kot so to-right, to-left, to-top in to-bottom, da označi, v katero smer se mora okno klepeta razširiti glede na poudarek. Na mobilnih napravah (zasloni širši manj kot 768px) se okno klepeta vedno prikaže celozaslonsko za boljšo uporabnost.

Dimenzije okna klepeta

Okna klepeta so na namizju široka 410px z razmikom 20px in 16px vizualno puščico, usmerjeno k poudarjenemu besedilu. Te dimenzije so fiksne, da se zagotovi dosledno vedenje, vendar lahko videz prilagodite s CSS.

Izbire, ki segajo čez več elementov

Uporabniki lahko izberejo besedilo, ki sega čez več HTML elementov, na primer označevanje od sredine enega odstavka do začetka drugega. Sistem serializacije obsega to pravilno obravnava in bo poudaril vse izbrano besedilo, tudi čez meje elementov.

Združljivost brskalnikov

Sistem izbire besedila uporablja standardni API window.getSelection(), ki ga podpirajo vsi sodobni brskalniki. Za starejše različice Internet Explorerja se za združljivost uporablja document.selection.

Vzdrževanje označb

Ko je za izbiro besedila ustvarjen pogovor, ta označba ostane tudi po ponovnem nalaganju strani. Serializirano območje in pot DOM omogočata pripomočku, da ob povratku uporabnikov na stran znova obnovi poudarke na točno istem mestu.

To deluje zanesljivo, dokler vsebina vaše strani ostane stabilna. Če spremenite besedilno vsebino ali prestrukturirate svoj HTML, obstoječe označbe morda ne bodo več pravilno poravnane z besedilom. Zato je najbolje, da se izognete večjim spremembam vsebine na straneh z aktivnimi označbami ali pa razmislite o migraciji označb, kadar so spremembe vsebine nujne.

Prilagoditev Internal Link

Podpora temnemu načinu

Dinamičen temni način

Če je temni način vaše strani nadzorovan z dodajanjem razreda .dark elementu body, bo uporabniški vmesnik Collab Chata to samodejno upošteval brez ponovne inicializacije. Slogi vtičnika so zasnovani tako, da reagirajo na prisotnost tega razreda.

Primer CSS za temni način
Copy Copy
1
2/* Vaš CSS za temni način */
3body.dark {
4 background: #1a1a1a;
5 color: #ffffff;
6}
7

Prilagajanje videza s CSS

Videz poudarkov, klepetalnih oken in drugih elementov lahko prilagodite s CSS. Vtičnik doda posebne razrede, na katere lahko ciljate v svojem slogovnem listu.

Poudarki besedila uporabljajo sistem slogov mehurčkov komentarjev FastComments, zato bodo vse prilagoditve, ki ste jih uporabili za standardni komentarni vtičnik, vplivale tudi na Collab Chat.

Prilagoditev zgornje vrstice

Zgornja vrstica prikazuje število uporabnikov na spletu in število razprav. Njeno pozicijo lahko prilagodite tako, da podate lastni element kot topBarTarget:

Prilagojena lokacija zgornje vrstice
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 topBarTarget: document.getElementById('my-custom-header')
5});
6

Ali ga popolnoma onemogočite tako, da ga nastavite na null:

Onemogoči zgornjo vrstico
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 topBarTarget: null
5});
6

Obnašanje na mobilnih napravah

Na zaslonih širših manj kot 768px se Collab Chat samodejno preklopi v mobilno optimizirano postavitev. Okna klepeta se prikažejo na celotnem zaslonu namesto lebdeče ob besedilu, in zamik pri izbiri je odstranjen za bolj takojšnje interakcije.

To vedenje je vgrajeno in ne zahteva nikakršne konfiguracije. Vtičnik samodejno zazna velikost zaslona in se temu primerno prilagodi.

Videz okna klepeta

Okna klepeta so na namizju široka 410px z 16px puščico, ki kaže na izpostavljeno besedilo. Okna se samodejno postavijo glede na razpoložljiv prostor v oknu brskalnika, z uporabo pozicionirnih razredov, kot so to-right, to-left, to-top in to-bottom.

Lahko dodate lasten CSS za prilagoditev barv, pisav, razmikov ali drugih vizualnih lastnosti teh oken. Okna klepeta uporabljajo isto strukturo komponent kot standardni vtičnik FastComments, zato podedujejo vse globalne prilagoditve, ki ste jih uporabili.

Lokalizacija

Collab Chat podpira enake možnosti lokalizacije kot standardni vtičnik FastComments. Nastavite možnost locale, da se besedilo UI prikaže v različnih jezikih:

Nastavitev lokalizacije
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 locale: 'es' // španščina
5});
6

FastComments podpira na desetine jezikov. Nastavitev lokalizacije vpliva na vse besedilo uporabniškega vmesnika, vključno z navodili, gumbi in besedilom nadomestka.

Podedovane možnosti prilagoditve

Ker Collab Chat razširja standardni komentarni vtičnik, podeduje vse možnosti prilagoditve iz osnovnega vtičnika. To vključuje prilagojene CSS razrede, prilagojene prevode, prilagoditve avatarjev, oblikovanje datumov in še veliko več.

Oglejte si glavno dokumentacijo o prilagoditvah FastComments za celoten seznam razpoložljivih možnosti prilagoditve.

Delo z lastnimi pisavami

Če vaša stran uporablja lastne pisave, jih uporabniški vmesnik Collab Chata podeduje iz CSS vaše strani. Morda boste morali ustvariti pravilo za prilagoditev vtičnika in @import vse pisave v prilagojenem CSS znotraj tega pravila, če želite, da lebdeče okno klepeta uporablja enake pisave.

Sinhronizacija v živo Internal Link

Posodobitve v realnem času

Collab Chat uporablja WebSocket povezave za sinhronizacijo vseh pogovorov v realnem času med vsemi povezanimi uporabniki. Ko nekdo ustvari novo anotacijo, doda komentar ali izbriše razpravo, vsi drugi uporabniki, ki si ogledujejo isto stran, vidijo posodobitev takoj brez osvežitve.

Kako deluje sinhronizacija WebSocket

Ko inicializirate Collab Chat, pripomoček vzpostavi WebSocket povezavo s strežniki FastComments. Ta povezava ostane odprta za čas trajanja uporabnikove seje in posluša posodobitve, povezane s trenutno stranjo.

Sistem WebSocket uporablja tri vrste broadcast sporočil za Collab Chat. Dogodek new-text-chat se sproži, ko nekdo ustvari novo anotacijo na strani. Dogodek updated-text-chat se sproži, ko nekdo posodobi obstoječi pogovor. Dogodek deleted-text-chat se sproži, ko nekdo izbriše anotacijo.

Sistem Broadcast ID

Da preprečimo učinke odmeva, pri katerih uporabniki vidijo svoje lastne ukrepe, ki so jim ponovno oddani, vsaka posodobitev vključuje edinstveni broadcastId. Ko uporabnik ustvari ali posodobi anotacijo, njegov odjemalec ustvari UUID za to operacijo. Ko WebSocket odda posodobitev nazaj vsem odjemalcem, izvorni odjemalec zanemari posodobitev, ker se ujema z njegovim broadcastId.

To zagotavlja tekočo interakcijo, kjer uporabniki takoj vidijo svoje spremembe v uporabniškem vmesniku brez čakanja na krožno pot prek strežnika, hkrati pa se zagotovi, da vsi ostali uporabniki prejmejo posodobitev.

Število uporabnikov v živo

V zgornji vrstici je prikazano število uporabnikov, ki si trenutno ogledujejo stran. To število se posodablja v realnem času, ko se uporabniki pridružujejo in odhajajo. Število uporabnikov je zagotovljeno prek iste WebSocket povezave in se samodejno poveča/ zmanjša glede na dogodke vzpostavitve in prekinitev povezave.

Odpornost povezave

Če WebSocket povezava pade zaradi težav v omrežju ali vzdrževanja strežnika, pripomoček samodejno poskusi znova vzpostaviti povezavo. Med obdobjem ponovnega vzpostavljanja lahko uporabniki še vedno sodelujejo z obstoječimi anotacijami, vendar ne bodo videli posodobitev v realnem času od drugih uporabnikov, dokler povezava ne bo ponovno vzpostavljena.

Ko je povezava znova vzpostavljena, se pripomoček ponovno sinhronizira, da zagotovi, da nobena posodobitev ni bila spregledana. To se zgodi samodejno, brez potrebe po posegu uporabnika.

Premisleki glede pasovne širine

WebSocket sporočila so lahka in vsebujejo le bistvene informacije, potrebne za sinhronizacijo stanja. Ustvarjanje nove anotacije običajno porabi manj kot 1KB pasovne širine. Sistem vključuje tudi inteligentno združevanje sporočil, da zmanjša frekvenco sporočil med obdobji velike aktivnosti.

Vaše meritve uporabe na nadzorni plošči FastComments spremljajo pubSubMessageCount in pubSubBandwidth, tako da lahko spremljate dejavnost sinhronizacije v realnem času na vaših spletnih mestih.

Sinhronizacija med zavihki

Če ima uporabnik isto stran odprto v več zavihkih brskalnika, se posodobitve v enem zavihku takoj prikažejo v drugih zavihkih. To deluje prek istega mehanizma WebSocket sinhronizacije in ne zahteva dodatne konfiguracije.

Varnost

WebSocket sporočila se prenašajo prek varnih povezav (WSS) in vključujejo preverjanje najemnika, da se zagotovi, da uporabniki prejemajo posodobitve le za pogovore, za katere so pooblaščeni. Strežnik preveri vse operacije, preden jih odda, da prepreči nepooblaščen dostop ali manipulacijo.

Imate vprašanja?

To je vse za FastComments Collab Chat! Če imate kakršnakoli vprašanja, potrebujete pomoč pri implementaciji ali imate predloge za funkcije, nam to sporočite spodaj ali se obrnite na našo podporno ekipo.

Za žive primere si oglejte Govscent.org, ki uporablja Collab Chat v produkciji.