React
事前構築済みの React コンポーネントを使って、React アプリケーションに Docs Embed を追加します
React プロジェクトでは、GitBook は、ドキュメントの埋め込みをシンプルかつ自然にしてくれる事前構築済みコンポーネントを提供します。これらのコンポーネントは、状態管理、コンテキスト、ライフサイクルを自動的に処理します。
手順
パッケージをインストールする
追加する @gitbook/embed あなたの React プロジェクトに:
npm install @gitbook/embed完全な API リファレンスとソースコードについては、GitHub 上の次のものを参照してください: @gitbook/embed パッケージ.
GitBookFrame コンポーネントを追加する
埋め込みを表示したい場所にフレームコンポーネントを配置します:
function App() {
return (
<GitBookProvider siteURL="https://docs.company.com">
<div className="app">
<YourAppContent />
<GitBookFrame
visitor={{
token: 'your-jwt-token', // 任意: Adaptive Content または認証済みアクセス用
unsignedClaims: { userId: '123' } // 任意: 動的式のためのカスタムクレーム
}}
/>
</div>
</GitBookProvider>
);
}埋め込みをカスタマイズする
フレームコンポーネントに設定用の props を渡します:
<GitBookProvider siteURL="https://docs.company.com">
<GitBookFrame
trademark={false}
tabs={['assistant', 'docs']}
greeting={{ title: 'ようこそ!', subtitle: 'どのようにお手伝いできますか?' }}
suggestions={['GitBook とは何ですか?', 'どうやって始めればいいですか?']}
actions={[
{
icon: 'circle-question',
label: 'サポートに連絡',
onClick: () => window.open('https://support.example.com', '_blank')
}
]}
tools={[/* ... */]}
visitor={{
token: 'your-jwt-token',
unsignedClaims: { userId: '123' }
}}
/>
</GitBookProvider>useGitBook フックで埋め込みを制御する
次の useGitBook フックを使って、埋め込みをプログラムから操作します:
import { useGitBook } from "@gitbook/embed/react";
function HelpButton() {
const gitbook = useGitBook();
const frameURL = gitbook.getFrameURL({ visitor: { token: '...' } });
const handleNavigate = () => {
const iframe = document.createElement('iframe');
iframe.src = frameURL;
const frame = gitbook.createFrame(iframe);
frame.navigateToPage('/getting-started');
frame.navigateToAssistant();
frame.postUserMessage('どうやって始めればいいですか?');
};
return <button onClick={handleNavigate}>ヘルプを表示</button>;
}Next.js またはサーバーサイドレンダリングで使用する
SSR の問題を避けるために、コンポーネントを動的にインポートします:
import dynamic from "next/dynamic";
const GitBookProvider = dynamic(
() => import("@gitbook/embed/react").then((mod) => mod.GitBookProvider),
{ ssr: false }
);
const GitBookFrame = dynamic(
() => import("@gitbook/embed/react").then((mod) => mod.GitBookFrame),
{ ssr: false }
);Props と設定
GitBookProvider の Props:
siteURL
string
はい
N/A
GitBook ドキュメントサイトの URL(例: https://docs.company.com).
children
ReactNode
はい
N/A
プロバイダー内でレンダリングする子コンポーネント。
GitBookFrame の Props:
すべての設定オプションは、次の props として渡せます。 <GitBookFrame>。利用可能なオプションは以下の設定セクションを参照してください。
className
string
いいえ
null
フレームコンテナーに適用する CSS クラス名。
style
object
いいえ
{}
フレームコンテナーに適用するインラインスタイル。
visitor
object
いいえ
{}
認証済みアクセス用のオプション(以下を参照)。
useGitBook フック:
次を返します。 GitBookClient 次のメソッドを持つインスタンス:
getFrameURL(options?: { visitor?: {...} })→string- iframe の URL を取得するcreateFrame(iframe: HTMLIFrameElement)→GitBookFrameClient- フレームクライアントを作成する
フレームクライアントが提供するもの:
navigateToPage(path: string)→voidnavigateToAssistant()→voidpostUserMessage(message: string)→voidclearChat()→voidconfigure(settings: {...})→voidon(event: string, listener: Function)→() => void
設定オプション
設定オプションは、次の props として利用できます。 <GitBookFrame>:
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 (認証済みアクセス)用途: Adaptive Content 、 認証済みアクセス.
入力:
{ token?: string, unsignedClaims?: Record<string, unknown> }
よくある落とし穴
GitBookProvider でラップしない –
GitBookFrame親が必要ですGitBookProvider動作するために。動的インポートなしで SSR と併用する – このコンポーネントはブラウザー API を使用するため、Next.js やその他の SSR フレームワークでは動的にインポートする必要があります。
siteURL が公開済みドキュメントと一致しない – 次を確認してください。
siteURLprop が本番のドキュメントサイト URL と完全に一致していること。プロバイダー外で useGitBook を呼び出す –
useGitBookフックは、次の子であるコンポーネント内で使用する必要があります。GitBookProvider.ツリー内に複数のプロバイダーがある – 複数の
GitBookProviderインスタンスをネストしないでください。コンテキストの競合を引き起こす可能性があります。古いコンポーネント名を使う – 現在のコンポーネント名は
GitBookFrameであり、GitBookAssistantFrame ではありません.
最終更新
役に立ちましたか?