Node.js/NPM
アプリケーションレベルでの完全な制御のために NPM パッケージで Docs Embed を統合する
より細かく制御し、アプリケーションレベルで操作したい場合は、npmからGitBookのembedパッケージをインストールできます。この方法はサーバーサイドレンダリング、ビルド時の統合、またはカスタムiframe管理に最適です。
手順
パッケージをインストールする
追加する @gitbook/embed をプロジェクトに:
npm install @gitbook/embed完全なAPI参照とソースコードは、次を参照してください @gitbook/embed GitHubのパッケージ.
iframeを作成する
iframe要素を生成し、そのソースを埋め込み用URLに設定します:
const iframe = document.createElement("iframe");
iframe.src = gitbook.getFrameURL({
visitor: {
token: 'your-jwt-token', // 任意:Adaptive Contentや認証付きアクセス用
unsignedClaims: { // 任意:動的式のためのカスタムクレーム
userId: '123',
plan: 'premium'
}
}
});
iframe.id = "gitbook-embed-container";
iframe.style.border = "none";
iframe.style.width = "100%";
iframe.style.height = "600px";埋め込みを設定する
カスタマイズオプションで埋め込みを設定します:
frame.configure({
trademark: false,
tabs: ['assistant', 'docs'],
actions: [
{
icon: 'circle-question',
label: 'Contact Support',
onClick: () => window.open('https://support.example.com', '_blank')
}
],
greeting: { title: 'Welcome!', subtitle: 'How can I help?' },
suggestions: ['What is GitBook?', 'How do I get started?'],
tools: [/* ... */]
});APIリファレンス
クライアントファクトリ
createGitBook(options: { siteURL: string })→GitBookClientclient.getFrameURL(options?: { visitor?: {...} })→string- 認証付きアクセスを含めたオプションでiframeのURLを取得するclient.createFrame(iframe: HTMLIFrameElement)→GitBookFrameClient- iframeと通信するためのフレームクライアントを作成する
フレームクライアントのメソッド
frame.navigateToPage(path: string)→void- ドキュメントタブの特定ページへ移動するframe.navigateToAssistant()→void- アシスタントタブに切り替えるframe.postUserMessage(message: string)→void- チャットにメッセージを投稿するframe.clearChat()→void- チャット履歴をクリアするframe.configure(settings: Partial<GitBookEmbeddableConfiguration>)→void- 埋め込みを設定するframe.on(event: string, listener: Function)→() => void- イベントリスナーを登録する(解除関数を返します)
設定オプション
設定オプションは次で利用可能です frame.configure({...}):
tabs
tabs表示するタブを上書きします。デフォルトはサイトの設定です。
型:
('assistant' | 'docs')[]
actions
actionsタブの横にサイドバー内でレンダリングされるカスタムアクションボタン。各アクションボタンはクリック時にコールバックをトリガーします。
注意: 以前は次の名前でした buttons。代わりに actions を使用してください。
型:
Array<{ icon: string, label: string, onClick: () => void }>
greeting
greetingアシスタントタブに表示される歓迎メッセージ。
型:
{ title: string, subtitle: string }
suggestions
suggestionsアシスタントのウェルカム画面に表示される推奨質問。
型:
string[]
trademark
trademarkDocs Embedのフッターやアシスタントのブランディングを含む、埋め込みUI内のGitBookの商標を表示または非表示にします。
型:
booleanデフォルト:
true
tools
toolsアシスタントを拡張するカスタムAIツール。詳細は次を参照してください。 カスタムツールの作成 をご覧ください。
型:
Array<{ name: string, description: string, inputSchema: object, execute: Function, confirmation?: {...} }>
visitor (認証付きアクセス)
visitor (認証付きアクセス)次に渡します getFrameURL({ visitor: {...} })。使用されるのは Adaptive Content と Authenticated Access.
型:
{ token?: string, unsignedClaims?: Record<string, unknown> }
よくある落とし穴
パッケージをインストールし忘れること – インポートする前に
npm install @gitbook/embedを実行してください。siteURLがない – オプションの
siteURLは必須で、公開されているドキュメントサイトと一致する必要があります。iFrameがレンダリングされない – iframeが表示されるために、親コンテナに十分な幅/高さがあることを確認してください。
初期化前にフレームメソッドが呼ばれる – フレームメソッドを呼び出す前に、
createFrame()が完了するのを待ってください。イベントの購読を解除していない – メモリリークを防ぐために、
frame.on()が返す解除関数を呼び出すことを忘れないでください。古いAPIメソッドを使用している – 次のようなメソッドは
open(),close(),toggle()、およびdestroy()はNPMパッケージでは利用できません。代わりにフレームクライアントのメソッドを使用してください。
最終更新
役に立ちましたか?