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
trademark={false}
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 }
);Props と構成
GitBookProvider の Props:
siteURL
string
はい
該当なし
あなたのGitBookドキュメントサイトのURL(例: https://docs.company.com).
children
ReactNode
はい
該当なし
プロバイダ内でレンダリングする子コンポーネント。
GitBookFrame の Props:
すべての構成オプションはプロップとして <GitBookFrame>に渡すことができます。利用可能なオプションは下の「Configuration」セクションを参照してください。
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
構成オプション
構成オプションはプロップとして利用できます <GitBookFrame>:
tabs
tabs表示するタブを上書きします。デフォルトはサイトの設定です。
型:
('assistant' | 'docs')[]
actions
actionsタブの横にサイドバー内でレンダリングされるカスタムアクションボタン。各アクションボタンはクリック時にコールバックをトリガーします。
注記:これは以前は buttonsという名前でした。 actions 代わりに
型:
Array<{ icon: string, label: string, onClick: () => void }>
greeting
greetingAssistantタブに表示される歓迎メッセージ。
型:
{ title: string, subtitle: string }
suggestions
suggestionsAssistantのウェルカム画面に表示される推奨質問。
型:
string[]
trademark
trademarkDocs EmbedフッターやAssistantのブランディングを含む埋め込みUI内のGitBook商標を表示するか隠すかを指定します。
型:
booleanデフォルト:
true
tools
toolsAssistantを拡張するカスタム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が公開されたドキュメントと一致していない – propがライブのドキュメントサイトのURLと正確に一致していることを確認してください。
siteURLuseGitBookをプロバイダ外で呼び出すフックはプロバイダの子であるコンポーネント内で使用する必要があります – この
useGitBook。GitBookProvider.ツリー内に複数のプロバイダがある – 複数の
GitBookProviderインスタンスをネストするのは避けてください。コンテキストの競合を引き起こす可能性があります。古いコンポーネント名を使用している – そのコンポーネントは現在
GitBookFrameであり、以前の名前ではありませんGitBookAssistantFrame.
最終更新
役に立ちましたか?