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

How Text Selection Works

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

Selection Delay

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

Unique Conversation IDs

לכל שיחה מוקצה urlId ייחודי שמשלב את כתובת הדף, נתיב אלמנט ה-DOM, וטווח הטקסט הסריאליזованный. זה מבטיח שלכל בחירת טקסט נוצר דיון נפרד שאפשר למצוא שוב מאוחר יותר.

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

Visual Highlights

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

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

Chat Window Positioning

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

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

Chat Window Dimensions

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

Cross-Element Selections

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

Browser Compatibility

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

Selection Persistence

לאחר שנוצר דיון עבור בחירת טקסט, ההערה נשמרת גם אם הדף נטען מחדש. הטווח הסריאליזованный ונתיב ה-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 בסביבת הייצור.