Node.js/NPM
使用 NPM 包集成 Docs Embed,以实现完整的应用级控制
如果您需要更多控制并希望在应用层工作,您可以从 npm 安装 GitBook 嵌入包。此方法非常适合服务器端渲染、构建时集成或自定义 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', // 可选:用于自适应内容或认证访问
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 URLclient.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({...}):
选项卡
选项卡覆盖显示的选项卡。默认为站点的配置。
类型:
('assistant' | 'docs')[]
操作
操作在侧边栏与选项卡并列呈现的自定义操作按钮。每个操作按钮在被点击时会触发回调。
注意:之前名为 buttons。请使用 操作 代替。
类型:
Array<{ icon: string, label: string, onClick: () => void }>
欢迎词
欢迎词在助手选项卡中显示的欢迎信息。
类型:
{ title: string, subtitle: string }
建议
建议在助手欢迎屏幕中显示的建议问题。
类型:
string[]
商标
商标在嵌入 UI 中显示或隐藏 GitBook 商标——包括 Docs 嵌入页脚和助手品牌。
类型:
boolean默认值:
true
工具
工具用于扩展助手的自定义 AI 工具。详见 创建自定义工具 以获取详细信息。
类型:
Array<{ name: string, description: string, inputSchema: object, execute: Function, confirmation?: {...} }>
访客 (认证访问)
访客 (认证访问)传递给 getFrameURL({ visitor: {...} })。用于 自适应内容 和 认证访问.
类型:
{ token?: string, unsignedClaims?: Record<string, unknown> }
常见陷阱
忘记安装包 – 在导入之前运行
npm install @gitbook/embed。缺少 siteURL – 选项
siteURL是必需的,且必须与您发布的文档站点匹配。iFrame 未渲染 – 确保父容器具有足够的宽度/高度以显示 iframe。
在初始化之前调用框架方法 – 在调用框架方法之前,等待
createFrame()完成。未从事件中取消订阅 – 请记得调用由
frame.on()返回的取消订阅函数,以防止内存泄漏。使用旧的 API 方法 – 像
open(),close(),toggle(),和destroy()在 NPM 包中不可用。请改用框架客户端方法。
最后更新于
这有帮助吗?