Node.js/NPM
NPM パッケージを使用して Docs Embed を統合し、アプリケーション全体を細かく制御できます
より細かい制御が必要で、アプリケーションレベルで作業したい場合は、npm から GitBook の埋め込みパッケージをインストールできます。このアプローチは、サーバーサイドレンダリング、ビルド時の統合、またはカスタム iframe 管理に最適です。
手順
パッケージをインストールする
追加する @gitbook/embed をプロジェクトに追加します:
npm install @gitbook/embed完全な API リファレンスとソースコードについては、GitHub 上の次のものを参照してください: @gitbook/embed パッケージ.
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: 'サポートに連絡',
onClick: () => window.open('https://support.example.com', '_blank')
}
],
greeting: { title: 'ようこそ!', subtitle: 'どのようにお手伝いできますか?' },
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- イベントリスナーを登録します(unsubscribe 関数を返します)
設定オプション
設定オプションは次で利用できます 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
trademark埋め込み UI で GitBook の商標を表示または非表示にします — Docs Embed のフッターと Assistant のブランド表示を含みます。
入力:
booleanデフォルト:
true
tools
toolsアシスタントを拡張するためのカスタム AI ツールです。詳細は カスタムツールの作成 をご覧ください。
入力:
Array<{ name: string, description: string, inputSchema: object, execute: Function, confirmation?: {...} }>
visitor (認証済みアクセス)
visitor (認証済みアクセス)次に渡します getFrameURL({ visitor: {...} })。用途は Adaptive Content 、 認証済みアクセス.
入力:
{ token?: string, unsignedClaims?: Record<string, unknown> }
よくある落とし穴
パッケージのインストールを忘れる – 実行してください
npm install @gitbook/embedをインポートする前に。siteURL がない –
siteURLオプションは必須で、公開済みの docs サイトと一致している必要があります。iFrame がレンダリングされない – 親コンテナに、iframe を表示するのに十分な幅/高さがあることを確認してください。
初期化前にフレームメソッドが呼ばれる – まで待ってから
createFrame()を呼び出してからフレームメソッドを実行してください。イベントの購読解除をしない – 次で返される unsubscribe 関数を呼び出すことを忘れないでください
frame.on()メモリリークを防ぐためです。古い API メソッドを使用している – 次のようなメソッドは
open(),close(),toggle()、およびdestroy()NPM パッケージでは利用できません。代わりにフレームクライアントのメソッドを使用してください。
最終更新
役に立ちましたか?