FastComments.com

צ'אט שיתופי

הוספת הערות חיות מקוונות למסמכים, ספרים וכו'

FastComments Collab Chat מאפשר למשתמשים להדגיש ולהוסיף הערות לכל תוכן טקסט באתר שלך, וליצור דיונים בשרשורים שקשורים לבחירות טקסט ספציפיות. משתמשים יכולים לבחור מילים, משפטים או פסקאות שלמות כדי להתחיל שיחות שיתופיות ישירות בתוך התוכן שלך.

תכונה זו מתאימה במיוחד למשוב עריכי, סביבות קריאה שיתופיות, פלטפורמות חינוכיות, סקירת מסמכים ובכל תרחיש שבו ברצונך לקיים דיונים בהקשר הטקסט הקשור לחלק טקסט מסוים.

שים לב שמסמכים אלה ספציפיים לפונקציית ה-Collab Chat. ניתן להוסיף מערכת תגובות לתוכן בעל דפים רבים, כמו ספרים, עם thread-per-page, בלי להשתמש ב-Collab Chat. FastComments גם לא גובה תשלום פר-דף או פר-שרשור. Collab Chat מיועדת במיוחד כאשר אתה רוצה לאפשר למשתמשים לבחור טקסט ולהגיב על החלק המסומן של הטקסט.

ניתן לראות דוגמה כאן.

דוגמאות Internal Link

דוגמה בסיסית

הדרך הפשוטה ביותר להשתמש ב-Collab Chat היא למקד מיכל תוכן יחיד. הדוגמה הזו מראה כיצד להפעיל הערות טקסט במאמר:

דוגמה בסיסית של Collab Chat
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

דוגמה עם מזהה URL מותאם (לעמוד בספר, מאמר וכו')

כברירת מחדל, Collab Chat משתמש ב-URL של הדף בשילוב עם נתיב האלמנט וטווח הטקסט כדי לזהות שיחות. תוכלו לספק urlId מותאם כדי לקבל שליטה רבה יותר על האופן שבו השיחות מקובצות:

Collab Chat עם מזהה URL מותאם
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

זה שימושי אם מבנה ה-URL שלכם משתנה אבל אתם רוצים לשמור על אותן שיחות, או אם אתם רוצים לשתף את אותן ההערות של השיחה בין עמודים מרובים.

דוגמה עם מצב כהה

אם לאתר שלכם יש רקע כהה, אפשרו תמיכה במצב כהה כדי להבטיח שממשק הצ'אט ייראה תקין:

Collab Chat עם מצב כהה
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

דוגמה עם הסרגל העליון מושבת

כברירת מחדל, Collab Chat מציג סרגל עליון עם מונה משתמשים ומונה דיונים. ניתן להשבית אותו:

Collab Chat עם הסרגל העליון מושבת
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

דוגמה עם קריאת חזרה לעדכון ספירת תגובות

ניתן לעקוב לאחר הוספה או עדכון של תגובות באמצעות פונקציית ה-commentCountUpdated:

Collab Chat עם קריאת חזרה לספירת תגובות
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

דוגמה עם מקטעים מרובים

ניתן לאתחל את Collab Chat על מספר מקטעים נפרדים בדף שלכם. לכל מקטע יהיו ההערות העצמאיות שלו:

Collab Chat על מספר מקטעים
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 // Initialize on intro section
15 FastCommentsCollabChat(document.getElementById('intro-section'), {
16 tenantId: 'demo',
17 urlId: 'my-article-intro'
18 });
19
20 // Initialize on main section
21 FastCommentsCollabChat(document.getElementById('main-section'), {
22 tenantId: 'demo',
23 urlId: 'my-article-main'
24 });
25</script>
26

הוספת הערות בזמן אמת לספרים מקוונים Internal Link

ניתן לאתחל את Collab Chat לכל עמוד במידת הצורך, וליצור שרשורים נפרדים לכל עמוד, פשוט העבר את הפרמטר urlId ערך כמו book-one-page1. תצורה זו עובדת גם עבור ווידג'ט ההערות הרגיל.

התנהגות בחירת הטקסט Internal Link

איך פועלת בחירת טקסט

כאשר משתמשים בוחרים טקסט בתוך מכל ה-Collab Chat, הווידג'ט לוכד את הבחירה ומאפשר להם לפתוח דיון. הבחירה יכולה להיות קטנה כמילה בודדת או גדולה כמספר פסקאות המשתרעות על פני אלמנטים שונים.

השהיה בבחירה

במכשירים שולחניים קיים השהיה של 3.5 שניות בין רגע בחירת הטקסט לבין הופעת בקשת הדיון. הדבר מונע הבהוב של ממשק המשתמש כאשר משתמשים פשוט מסמנים טקסט להעתקה או קריאה. במכשירים ניידים הבקשה מופיעה מיד, מכיוון שבחירת טקסט במסכי מגע היא מכוונת יותר.

מזהי שיחות ייחודיים

לכל שיחה מוקצה urlId ייחודי המשלב את כתובת ה-URL של הדף, את הנתיב של האלמנט ב-DOM ואת טווח הטקסט המסודר. זה מבטיח שכל בחירת טקסט יוצרת שיחה נפרדת שניתן למצוא שוב מאוחר יותר.

אם תספקו urlId מותאם אישית בהגדרות שלכם, הוא ישולב עם נתיב האלמנט וטווח הטקסט ליצירת המזהה הסופי.

סימון חזותי

כאשר קיים דיון עבור בחירת טקסט מסוימת, הטקסט הזה מקבל סימון חזותי. הסימון מיושם באמצעות צבעי רקע ומופיע בעת ריחוף או כאשר חלון הצ'אט המשויך פתוח.

מערכת הסימון פועלת על ידי עטיפת הטקסט הנבחר באלמנט מיוחד שניתן לעצב. גישה זו מבטיחה שהסימונים יישארו מדויקים גם כאשר מבנה ה-HTML הבסיסי מורכב.

מיקום חלון הצ'אט

כאשר משתמש לוחץ על סימון או יוצר הערה חדשה, חלון צ'אט מופיע ליד הטקסט הנבחר. הווידג'ט מחשב באופן אוטומטי את המיקום הטוב ביותר לחלון זה בהתבסס על המקום הפנוי באזור התצוגה.

מערכת המיקום משתמשת במחלקות CSS כמו to-right, to-left, to-top ו-to-bottom כדי לציין לאיזה כיוון חלון הצ'אט אמור להתרחב מהסימון. במכשירים ניידים (מסכים ברוחב של פחות מ-768px), חלון הצ'אט תמיד מופיע במסך מלא לשיפור השימושיות.

ממדי חלון הצ'אט

חלונות צ'אט הם ברוחב 410px במחשב שולחני, עם ריווח של 20px וחץ חזותי בגודל 16px המצביע על הטקסט המסומן. ממדים אלה קבועים כדי להבטיח התנהגות עקבית, אך ניתן להתאים אישית את המראה באמצעות CSS.

בחירות חוצות אלמנטים

משתמשים יכולים לבחור טקסט המשתרע על פני מספר אלמנטים ב-HTML, למשל סימון מאמצע פסקה אחת ועד תחילתה של פסקה אחרת. מערכת סידור הטווחים מטפלת בכך נכון ותסמן את כל הטקסט הנבחר גם מעבר לגבולות האלמנטים.

תאימות דפדפנים

מערכת בחירת הטקסט משתמשת ב-API הסטנדרטי window.getSelection() הנתמך בכל הדפדפנים המודרניים. עבור גרסאות ישנות יותר של Internet Explorer, היא חוזרת ל-document.selection לצורך תאימות.

שמירת הבחירה

ברגע שנוצרת שיחה עבור בחירת טקסט, ההערה נשמרת גם אם הדף נטען מחדש. הטווח המסודר ונתיב ה-DOM מאפשרים לווידג'ט לשחזר את הסימונים באותו מקום מדויק כאשר משתמשים חוזרים לדף.

הדבר פועל באופן אמין כל עוד תוכן הדף שלכם נשאר יציב. אם תשנו את תוכן הטקסט או תארגנו מחדש את ה-HTML שלכם, הערות קיימות עשויות לא להתאים עוד נכון לטקסט. מסיבה זו, מומלץ להימנע משינויי תוכן משמעותיים בדפים עם הערות פעילות, או לשקול העברת ההערות כאשר שינויי תוכן הכרחיים.

התאמה אישית Internal Link

תמיכה במצב כהה

מצב כהה דינמי

אם מצב כהה באתר שלך נשלט על ידי הוספת מחלקת .dark לאלמנט body, ממשק המשתמש של Collab Chat יתאים זאת אוטומטית מבלי שיידרש אתחול מחדש. סגנונות הווידג'ט מעוצבים כדי להגיב לנוכחות מחלקה זו.

דוגמת CSS למצב כהה
Copy Copy
1
2/* CSS למצב כהה */
3body.dark {
4 background: #1a1a1a;
5 color: #ffffff;
6}
7

עיצוב מותאם באמצעות CSS

ניתן להתאים את הופעת ההדגשות, חלונות הצ'אט ואלמנטים נוספים באמצעות CSS. הווידג'ט מוסיף מחלקות ספציפיות שניתן לטרגט בגליון הסגנונות שלך.

הדגשות הטקסט משתמשות במערכת עיצוב בועות ההערות של FastComments, לכן כל ההתאמות שהחלת על הווידג'ט התגובות הסטנדרטי ישפיעו גם על Collab Chat.

התאמת הסרגל העליון

הסרגל העליון מציג את מספר המשתמשים המקוונים ואת מספר הדיונים. ניתן להתאים את מיקומו על ידי מתן אלמנט מותאם כ-topBarTarget:

מיקום מותאם לסרגל העליון
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 topBarTarget: document.getElementById('my-custom-header')
5});
6

או להשבית אותו לחלוטין על ידי הגדרתו ל-null:

השבתת הסרגל העליון
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 topBarTarget: null
5});
6

התנהגות במובייל

במסכים ברוחב מתחת ל-768px, Collab Chat עובר אוטומטית לפריסת מותאמת לנייד. חלונות הצ'אט מופיעים במסך מלא במקום לרחף לצד הטקסט, ועיכוב הבחירה מוסר כדי לאפשר אינטראקציה מיידית יותר.

התנהגות זו מובנית ואינה דורשת קונפיגורציה. הווידג'ט מזהה את גודל המסך באופן אוטומטי ומתאים את עצמו בהתאם.

מראה חלון הצ'אט

חלונות הצ'אט רוחבם 410px בדסקטופ עם חץ בגודל 16px שמצביע לטקסט המודגש. החלונות ממקמים את עצמם באופן אוטומטי לפי שטח הצפייה הזמין, באמצעות מחלקות מיקום כמו to-right, to-left, to-top, ו-to-bottom.

ניתן להוסיף CSS מותאם כדי להתאים צבעים, גופנים, ריווח או מאפייני חזות אחרים של החלונות הללו. חלונות הצ'אט משתמשים באותה מבנה רכיבים כמו הווידג'ט הסטנדרטי של FastComments, ולכן הם יורשים כל התאמה גלובלית שהחלת.

לוקליזציה

Collab Chat תומך בכל אפשרויות הלוקליזציה אותן הווידג'ט הסטנדרטי של FastComments תומך. הגדר את האפשרות locale כדי להציג טקסט בממשק בשפות שונות:

הגדרת locale
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 locale: 'es' // ספרדית
5});
6

FastComments תומכת בעשרות שפות. הגדרת ה-locale משפיעה על כל טקסט בממשק המשתמש, כולל הודעות, כפתורים וטקסטי מציין מקום.

אפשרויות התאמה שיורשות

מכיוון ש-Collab Chat מרחיב את הווידג'ט התגובות הסטנדרטי, הוא יורש את כל אפשרויות ההתאמה מהווידג'ט הבסיסי. זה כולל מחלקות CSS מותאמות, תרגומים מותאמים, התאמת אווטאר, עיצוב תאריכים ועוד הרבה.

עיין בתיעוד ההתאמה הראשי של FastComments לרשימה המלאה של אפשרויות ההתאמה הזמינות.

עבודה עם גופנים מותאמים

אם האתר שלך משתמש בגופנים מותאמים, ממשק המשתמש של Collab Chat יורש את אותם גופנים מקובץ ה-CSS של העמוד שלך. ייתכן שתצטרך ליצור כלל התאמה לווידג'ט ולייבא (@import) את כל הגופנים ב-CSS המותאם בכלל זה אם ברצונך שחלון הצ'אט הצף ישתמש באותם גופנים.

סנכרון בזמן אמת Internal Link

עדכונים בזמן אמת

Collab Chat משתמש בחיבורים מסוג WebSocket כדי לסנכרן את כל השיחות בזמן אמת בין כל המשתמשים המחוברים. כאשר מישהו יוצר הערה חדשה, מוסיף תגובה, או מוחק דיון, כל המשתמשים האחרים הצופים באותה עמוד רואים את העדכון מיד בלי רענון.

איך הסנכרון ב-WebSocket עובד

כאשר אתם מאתחלים את Collab Chat, הווידג'ט יוצר חיבור WebSocket לשרתים של FastComments. החיבור נשאר פתוח במשך כל זמן מושב המשתמש ומאזין לעדכונים הקשורים לעמוד הנוכחי.

מערכת ה-WebSocket משתמשת בשלושה סוגי הודעות שידור עבור Collab Chat. האירוע new-text-chat מתרחש כשמישהו יוצר הערה חדשה בעמוד. האירוע updated-text-chat מתרחש כשמישהו מעדכן שיחה קיימת. האירוע deleted-text-chat מתרחש כשמישהו מוחק הערה.

מערכת מזהה השידור

כדי למנוע אפקט של הדהוד שבו משתמשים רואים את הפעולות שלהם משודרות חזרה אליהם, כל עדכון כולל broadcastId ייחודי. כאשר משתמש יוצר או מעדכן הערה, הקליינט שלו מייצר UUID עבור הפעולה הזו. כאשר ה-WebSocket משדר את העדכון חזרה לכל הקליינטים, הקליינט שמקורו בעדכון מתעלם מהעדכון כי הוא תואם ל-broadcastId שלו.

זה מבטיח אינטראקציה חלקה שבה המשתמשים רואים את השינויים שלהם מיד בממשק המשתמש בלי לחכות לסבב ההעברה דרך השרת, ובמקביל מבטיח שכל המשתמשים האחרים יקבלו את העדכון.

ספירת משתמשים חיה

סרגל העליון מציג את מספר המשתמשים שבכּרגע צופים בעמוד. ספירה זו מתעדכנת בזמן אמת כאשר משתמשים מצטרפים ויוצאים. ספירת המשתמשים מסופקת דרך אותו חיבור WebSocket ומתעדכנת אוטומטית על בסיס אירועי חיבור וניתוק.

עמידות החיבור

אם חיבור ה-WebSocket נקטע עקב בעיות רשת או תחזוקת שרת, הווידג'ט מנסה להתחבר מחדש אוטומטית. במהלך תקופת החיבור מחדש, משתמשים עדיין יכולים לפעול עם ההערות הקיימות, אך הם לא יראו עדכוני זמן אמת מאחרים עד שהחיבור יוקם מחדש.

לאחר חיבור מחדש, הווידג'ט מסנכרן מחדש כדי לוודא שלא הוחמצו עדכונים. זה קורה בשקיפות וללא צורך בהתערבות המשתמש.

שיקולי רוחב פס

הודעות WebSocket קלות במשקל ומכילות רק את המידע החיוני הנדרש לסנכרון המצב. יצירת הערה חדשה בדרך כלל משתמשת בפחות מ-1KB של רוחב פס. המערכת כוללת גם איגוד חכם של הודעות כדי להפחית את תדירות ההודעות בתקופות פעילות גבוהה.

מדדי השימוש שלכם בלוח הבקרה של FastComments עוקבים אחרי pubSubMessageCount ו-pubSubBandwidth כך שתוכלו לנטר את פעילות הסנכרון בזמן אמת ברחבי האתרים שלכם.

סנכרון בין לשוניות

אם משתמש פתח את אותו עמוד בכמה כרטיסיות בדפדפן, עדכונים בכרטיסיה אחת מופיעים מיד בכרטיסיות האחרות. זה פועל דרך אותו מנגנון סנכרון WebSocket ואינו דורש תצורה נוספת.

אבטחה

הודעות WebSocket משודרות דרך חיבורים מאובטחים (WSS) וכוללות tenant validation כדי לוודא שמשתמשים מקבלים רק עדכונים עבור שיחות אותם הם מורשים לראות. השרת מאמת את כל הפעולות לפני שהוא משדר אותן כדי למנוע גישה או מניפולציה לא מורשית.

יש לכם שאלות?

זה הכל עבור FastComments Collab Chat! אם יש לכם שאלות, זקוקים לעזרה ביישום, או יש לכם הצעות לתכונות, אנא הודיעו לנו למטה או פנו לצוות התמיכה שלנו.

לדוגמאות חיות, בדקו את Govscent.org שמשתמשת ב-Collab Chat בסביבת הייצור.