Node.js/NPM
Intégrez Docs Embed en utilisant le paquet NPM pour un contrôle complet au niveau de l'application
Si vous avez besoin de plus de contrôle et souhaitez travailler au niveau de l'application, vous pouvez installer le package GitBook embed depuis npm. Cette approche est idéale pour le rendu côté serveur, l'intégration au moment de la construction, ou la gestion personnalisée des iframes.
Étapes
Installer le package
Ajouter @gitbook/embed à votre projet :
npm install @gitbook/embedPour la référence complète de l'API et le code source, voir le @gitbook/embed package sur GitHub.
Créer un iframe
Générez un élément iframe et définissez sa source sur l'URL d'intégration :
const iframe = document.createElement("iframe");
iframe.src = gitbook.getFrameURL({
visitor: {
token: 'your-jwt-token', // Optionnel : pour le contenu adaptatif ou l'accès authentifié
unsignedClaims: { // Optionnel : claims personnalisés pour des expressions dynamiques
userId: '123',
plan: 'premium'
}
}
});
iframe.id = "gitbook-embed-container";
iframe.style.border = "none";
iframe.style.width = "100%";
iframe.style.height = "600px";Contrôler l'intégration par programmation
Utilisez l'instance frame pour interagir avec l'intégration :
// Naviguer vers une page spécifique dans l'onglet docs
frame.navigateToPage("/getting-started");
// Passer à l'onglet assistant
frame.navigateToAssistant();
// Envoyer un message au chat
frame.postUserMessage("How do I get started?");
// Effacer l'historique du chat
frame.clearChat();Configurer l'intégration
Configurez l'intégration avec des options de personnalisation :
frame.configure({
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: [/* ... */]
});Référence API
Usine client
createGitBook(options: { siteURL: string })→GitBookClientclient.getFrameURL(options?: { visitor?: {...} })→string- Obtenir l'URL de l'iframe avec un accès authentifié optionnelclient.createFrame(iframe: HTMLIFrameElement)→GitBookFrameClient- Créer un client de frame pour communiquer avec l'iframe
Méthodes du client de frame
frame.navigateToPage(path: string)→void- Naviguer vers une page spécifique dans l'onglet docsframe.navigateToAssistant()→void- Passer à l'onglet assistantframe.postUserMessage(message: string)→void- Envoyer un message au chatframe.clearChat()→void- Effacer l'historique du chatframe.configure(settings: Partial<GitBookEmbeddableConfiguration>)→void- Configurer l'intégrationframe.on(event: string, listener: Function)→() => void- Enregistrer un écouteur d'événement (renvoie une fonction de désabonnement)
Options de configuration
Les options de configuration sont disponibles via frame.configure({...}):
onglets
ongletsRemplacez les onglets affichés. Par défaut, ils correspondent à la configuration de votre site.
Type:
('assistant' | 'docs')[]
actions
actionsBoutons d'action personnalisés rendus dans la barre latérale à côté des onglets. Chaque bouton d'action déclenche un rappel lorsqu'il est cliqué.
Remarque: Ceci était précédemment nommé buttons. Utilisez actions à la place.
Type:
Array<{ icon: string, label: string, onClick: () => void }>
greeting
greetingMessage de bienvenue affiché dans l'onglet Assistant.
Type:
{ title: string, subtitle: string }
suggestions
suggestionsQuestions suggérées affichées dans l'écran de bienvenue de l'Assistant.
Type:
string[]
tools
toolsOutils IA personnalisés pour étendre l'Assistant. Voir Création d'outils personnalisés pour les détails.
Type:
Array<{ name: string, description: string, inputSchema: object, execute: Function, confirmation?: {...} }>
visitor (Accès authentifié)
visitor (Accès authentifié)Transmettre à getFrameURL({ visitor: {...} }). Utilisé pour Contenu adaptatif et Accès authentifié.
Type:
{ token?: string, unsignedClaims?: Record<string, unknown> }
Pièges courants
Oublier d'installer le package – Exécutez
npm install @gitbook/embedavant d'importer.siteURL manquant – L'option
siteURLest requise et doit correspondre à votre site de documentation publié.iFrame ne s'affiche pas – Assurez-vous que le conteneur parent dispose d'une largeur/hauteur suffisante pour que l'iframe s'affiche.
Méthodes de frame appelées avant l'initialisation – Attendez que
createFrame()se termine avant d'appeler les méthodes de frame.Ne pas se désabonner des événements – N'oubliez pas d'appeler la fonction de désabonnement renvoyée par
frame.on()pour éviter les fuites de mémoire.Utilisation d'anciennes méthodes de l'API – Des méthodes comme
open(),close(),toggle(), etdestroy()ne sont pas disponibles dans le package NPM. Utilisez plutôt les méthodes du client de frame.
Mis à jour
Ce contenu vous a-t-il été utile ?