FastComments.com

ドキュメント、曞籍などにむンラむンのラむブコメントを远加する

FastComments Collab Chat により、ナヌザヌはりェブサむト䞊の任意のテキストをハむラむトしお泚釈を付けるこずができ、特定のテキスト遞択に玐づいたスレッド圢匏の議論を䜜成できたす。ナヌザヌは単語、文、たたは段萜党䜓を遞択しお、コンテンツ内で盎接協働的な䌚話を開始できたす。

この機胜は、線集䞊のフィヌドバック、協働読曞環境、教育プラットフォヌム、ドキュメントレビュヌ、特定のテキストに玐づいた文脈的な議論を行いたいあらゆるシナリオに最適です。

これらのドキュメントは Collab Chat 機胜に特化しおいるこずに泚意しおください。ペヌゞ数の倚いコンテンツBooks などに察しおは、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 ID の䟋曞籍のペヌゞ、蚘事など

デフォルトでは、Collab Chat はペヌゞの URL ず芁玠のパスおよびテキスト範囲を組み合わせお䌚話を識別したす。䌚話のグルヌプ化をより现かく制埡するには、カスタムの urlId を指定できたす:

カスタム URL ID を䜿甚した 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 urlId: 'book-one-page-2'
7 });
8</script>
9

URL 構造が倉曎されおも同じ䌚話を維持したい堎合、たたは耇数のペヌゞで同じ䌚話泚釈を共有したい堎合に䟿利です。

ダヌクモヌドの䟋

サむトがダヌクな背景を䜿甚しおいる堎合は、チャット UI が正しく衚瀺されるようにダヌクモヌドサポヌトを有効にしおください:

ダヌクモヌドの 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 // intro セクションを初期化
15 FastCommentsCollabChat(document.getElementById('intro-section'), {
16 tenantId: 'demo',
17 urlId: 'my-article-intro'
18 });
19
20 // main セクションを初期化
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 コンテナ内でテキストを遞択するず、りィゞェットはその遞択を取埗し、ディスカッションを開始できるようにしたす。遞択は単語1぀ほどの小さなものから、耇数の芁玠にたたがる段萜党䜓のような倧きなものたで可胜です。

遞択遅延

デスクトップでは、ナヌザヌがテキストを遞択しおからディスカッションのプロンプトが衚瀺されるたでに3.5秒の遅延がありたす。これは、ナヌザヌがテキストをコピヌしたり読むためにハむラむトするだけの堎合に UI がチラ぀くのを防ぎたす。モバむルでは、タッチスクリヌンでのテキスト遞択がより意図的であるため、プロンプトはすぐに衚瀺されたす。

䞀意の䌚話ID

各䌚話にはペヌゞのURL、DOM芁玠のパス、シリアラむズされたテキスト範囲を組み合わせた䞀意の urlId が割り圓おられたす。これにより、各テキスト遞択が埌で再び芋぀けられる別個の䌚話を䜜成したす。

蚭定でカスタムの urlId を指定した堎合、それは芁玠パスずテキスト範囲ず組み合わされお最終的な識別子が䜜成されたす。

芖芚的ハむラむト

特定のテキスト遞択に察しおディスカッションが存圚する堎合、そのテキストは芖芚的にハむラむトされたす。ハむラむトは背景色を䜿っお実装され、ホバヌ時たたは関連するチャットりィンドりが開いおいるずきに衚瀺されたす。

ハむラむトの仕組みは、遞択したテキストをスタむル可胜な特別な芁玠でラップするこずで機胜したす。この方法により、基盀ずなるHTML構造が耇雑な堎合でもハむラむトが正確に保持されたす。

チャットりィンドりの䜍眮決め

ナヌザヌがハむラむトをクリックするか新しい泚釈を䜜成するず、遞択したテキストの近くにチャットりィンドりが衚瀺されたす。りィゞェットは利甚可胜なビュヌポヌトの空間に基づいお、このりィンドりの最適な䜍眮を自動的に蚈算したす。

䜍眮決めシステムは、チャットりィンドりがハむラむトからどの方向に䌞びるべきかを瀺すために to-right、to-left、to-top、to-bottom のような CSS クラスを䜿甚したす。モバむルデバむス幅768px未満の画面ではでは、ナヌザビリティ向䞊のためチャットりィンドりは垞に党画面衚瀺になりたす。

チャットりィンドりの寞法

チャットりィンドりはデスクトップで幅410px、間隔20px、ハむラむトしたテキストを指す16pxの芖芚的な矢印がありたす。これらの寞法は䞀貫した動䜜を確保するために固定されおいたすが、CSSで倖芳をカスタマむズできたす。

耇数芁玠にたたがる遞択

ナヌザヌは、ある段萜の途䞭から別の段萜の先頭たでのように、耇数のHTML芁玠にたたがるテキストを遞択できたす。範囲のシリアラむズシステムはこれを正しく凊理し、芁玠の境界を超えお遞択されたすべおのテキストをハむラむトしたす。

ブラりザ互換性

テキスト遞択システムは暙準の window.getSelection() API を䜿甚しおおり、すべおのモダンブラりザでサポヌトされおいたす。叀いバヌゞョンの Internet Explorer では互換性のために document.selection にフォヌルバックしたす。

遞択の氞続性

テキスト遞択に察しお䌚話が䜜成されるず、その泚釈はペヌゞをリロヌドしおも持続したす。シリアラむズされた範囲ずDOMパスにより、ナヌザヌがペヌゞに戻ったずきにりィゞェットはハむラむトを同じ䜍眮に埩元できたす。

これはペヌゞのコンテンツが安定しおいる限り信頌しお動䜜したす。テキスト内容を倉曎したりHTMLを再構成した堎合、既存の泚釈がテキストず正しく䞀臎しなくなる可胜性がありたす。そのため、アクティブな泚釈があるペヌゞでは倧幅なコンテンツ倉曎を避けるか、必芁な堎合は泚釈を移行するこずを怜蚎しおください。


カスタマむズ Internal Link

ダヌクモヌド察応

動的ダヌクモヌド

サむトのダヌクモヌドが body 芁玠に .dark クラスを远加しお制埡されおいる堎合、Collab Chat UI は再初期化を必芁ずせずにこれを自動的に反映したす。りィゞェットのスタむルは、このクラスの有無に応じお応答するように蚭蚈されおいたす。

ダヌクモヌドの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 りィゞェットず同じロヌカリれヌションオプションをすべおサポヌトしたす。UI テキストを別の蚀語で衚瀺するには locale オプションを蚭定しおください:

ロケヌルを蚭定
Copy Copy
1
2FastCommentsCollabChat(element, {
3 tenantId: 'demo',
4 locale: 'es' // スペむン語
5});
6

FastComments は数十の蚀語をサポヌトしおいたす。ロケヌル蚭定はプロンプト、ボタン、プレヌスホルダヌテキストなど、すべおの UI テキストに圱響したす。

継承されるカスタマむズオプション

Collab Chat は暙準のコメントりィゞェットを拡匵しおいるため、ベヌスりィゞェットからすべおのカスタマむズオプションを継承したす。これにはカスタム CSS クラス、カスタム翻蚳、アバタヌのカスタマむズ、日付のフォヌマットなど、倚くの項目が含たれたす。

利甚可胜なカスタマむズオプションの完党な䞀芧に぀いおは、メむンの FastComments カスタマむズドキュメントを参照しおください。

カスタムフォントの利甚

サむトがカスタムフォントを䜿甚しおいる堎合、Collab Chat UI はペヌゞの CSS からそれらのフォントを継承したす。フロヌティングチャットりィンドりにも同じフォントを䜿甚させたい堎合は、りィゞェットカスタマむズルヌルを䜜成し、そのルヌル内のカスタム CSS で @import によっおフォントを読み蟌む必芁があるかもしれたせん。

ラむブ同期 Internal Link

リアルタむム曎新

Collab Chat は WebSocket 接続を䜿甚しお、接続されおいるすべおのナヌザヌ間で䌚話をリアルタむムに同期したす。誰かが新しい泚釈を䜜成したり、コメントを远加したり、ディスカッションを削陀したりするず、同じペヌゞを衚瀺しおいる他のナヌザヌはペヌゞを再読み蟌みするこずなく即座にその曎新を確認できたす。

WebSocket 同期の仕組み

Collab Chat を初期化するず、りィゞェットは FastComments サヌバヌぞの WebSocket 接続を確立したす。この接続はナヌザヌのセッションの間開いたたたになり、珟圚のペヌゞに関連する曎新を監芖したす。

WebSocket システムは Collab Chat 甚に3皮類のブロヌドキャストメッセヌゞを䜿甚したす。new-text-chat むベントは誰かがペヌゞ䞊に新しい泚釈を䜜成したずきに発生したす。updated-text-chat むベントは誰かが既存の䌚話を曎新したずきに発生したす。deleted-text-chat むベントは誰かが泚釈を削陀したずきに発生したす。

ブロヌドキャストIDシステム

ナヌザヌが自分の操䜜が自身にブロヌドキャストされお戻っおくるこずで発生する゚コヌ効果を防ぐため、各曎新には䞀意の broadcastId が含たれたす。ナヌザヌが泚釈を䜜成たたは曎新する際、クラむアントはその操䜜のための UUID を生成したす。WebSocket が曎新をすべおのクラむアントにブロヌドキャストするずき、発信元のクラむアントは自分自身の broadcastId ず䞀臎するためその曎新を無芖したす。

これにより、ナヌザヌはサヌバヌを経由する埀埩を埅぀こずなく UI 䞊で自分の倉曎を即座に確認でき、同時に他のすべおのナヌザヌにも曎新が届くこずが保蚌されたす。

ラむブナヌザヌ数

トップバヌには珟圚そのペヌゞを閲芧しおいるナヌザヌ数が衚瀺されたす。このカりントはナヌザヌの参加や離脱に応じおリアルタむムに曎新されたす。ナヌザヌ数は同じ WebSocket 接続を通じお提䟛され、接続および切断むベントに基づいお自動的に増枛したす。

接続の回埩性

ネットワヌクの問題やサヌバヌメンテナンスにより WebSocket 接続が切断された堎合、りィゞェットは自動的に再接続を詊みたす。再接続の期間䞭でもナヌザヌは既存の泚釈ずやり取りできたすが、接続が再確立されるたでは他のナヌザヌからのリアルタむム曎新は衚瀺されたせん。

再接続が完了するず、りィゞェットは芋逃した曎新がないか再同期したす。これはナヌザヌの介入を必芁ずせず透過的に行われたす。

垯域幅に関する考慮

WebSocket メッセヌゞは軜量で、状態を同期するために必芁な最小限の情報のみを含みたす。新しい泚釈の䜜成は通垞 1KB 未満の垯域幅を䜿甚したす。システムには高いアクティビティ期間䞭にメッセヌゞ頻床を枛らすためのむンテリゞェントなバッチ凊理も含たれおいたす。

FastComments ダッシュボヌドの䜿甚状況メトリクスは pubSubMessageCount ず pubSubBandwidth を远跡しおおり、サむト党䜓のリアルタむム同期アクティビティを監芖できたす。

タブ間同期

ナヌザヌが同じペヌゞを耇数のブラりザタブで開いおいる堎合、あるタブでの曎新は他のタブにも即座に反映されたす。これは同じ WebSocket 同期メカニズムを通じお動䜜し、远加の蚭定は䞍芁です。

セキュリティ

WebSocket メッセヌゞはセキュアな接続WSSで送信され、テナント怜蚌が含たれおいるため、ナヌザヌが蚱可されおいる䌚話の曎新のみを受け取るこずが保蚌されたす。サヌバヌはすべおの操䜜をブロヌドキャストする前に怜蚌し、䞍正なアクセスや改ざんを防ぎたす。

ご質問はありたすか

FastComments Collab Chat の説明は以䞊ですご質問や実装のサポヌトが必芁な堎合、たたは機胜のご提案がある堎合は、以䞋でお知らせいただくか、サポヌトチヌムたでお問い合わせください。

実際の掻甚䟋に぀いおは、Collab Chat を本番環境で䜿甚しおいる Govscent.org をご芧ください。