React
事前構築されたReactコンポーネントを使ってReactアプリにDocs Embedを追加する
Reactプロジェクト向けに、GitBookはドキュメントを埋め込むことを簡単かつ慣習的に行える事前構築コンポーネントを提供します。これらのコンポーネントは状態管理、コンテキスト、およびライフサイクルを自動的に処理します。
手順
パッケージをインストール
追加 @gitbook/embed あなたのReactプロジェクトに:
npm install @gitbook/embed完全なAPIリファレンスとソースコードについては、次を参照してください: @gitbook/embed GitHub上のパッケージ.
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>
);
}埋め込みをカスタマイズする
フレームコンポーネントに設定プロップを渡します:
<GitBookProvider siteURL="https://docs.company.com">
<GitBookFrame
tabs={['assistant', 'docs']}
greeting={{ title: 'Welcome!', subtitle: 'How can I help?' }}
suggestions={['What is GitBook?', 'How do I get started?']}
actions={[
{
icon: 'circle-question',
label: 'Contact Support',
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('How do I get started?');
};
return <button onClick={handleNavigate}>Get Help</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 }
);プロップと設定
GitBookProviderのプロップ:
siteURL
string
はい
該当なし
あなたのGitBookドキュメントサイトのURL(例、 https://docs.company.com).
children
ReactNode
はい
該当なし
プロバイダー内でレンダリングする子コンポーネント。
GitBookFrameのプロップ:
すべての設定オプションはプロップとして <GitBookFrame>に渡すことができます。利用可能なオプションは以下の「Configuration」セクションを参照してください。
className
string
いいえ
null
フレームコンテナに適用するCSSクラス名。
style
オブジェクト
いいえ
{}
フレームコンテナに適用するインラインスタイル。
visitor
オブジェクト
いいえ
{}
認証付きアクセスのオプション(下記参照)。
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
設定オプション
設定オプションは <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[]
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が公開されたドキュメントと一致しない – プロップがあなたの公開中のドキュメントサイトのURLと正確に一致していることを確認してください。
siteURLpropがあなたの公開ドキュメントサイトのURLと正確に一致していることを確認してください。プロバイダー外でuseGitBookを呼び出す – オプションの
useGitBookフックは、の子であるコンポーネント内で使用する必要がありますGitBookProvider.ツリー内の複数のプロバイダー – 複数のインスタンスをネストすることは避けてください。コンテキストの競合を引き起こす可能性があります。
GitBookProvider使用している古いコンポーネント名– コンポーネントは現在 です。以前の名前ではありません
GitBookFrameではなくGitBookAssistantFrame.
最終更新
役に立ちましたか?