Node.js/NPM
Intégrez Docs Embed à l’aide du package NPM pour un contrôle total 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 d’intégration GitBook depuis npm. Cette approche est idéale pour le rendu côté serveur, l’intégration au moment de la compilation ou la gestion personnalisée d’iframes.
Étapes
Installez le package
Ajoutez @gitbook/embed dans votre projet :
npm install @gitbook/embedPour la référence complète de l’API et le code स्रोत, consultez le package @gitbook/embed sur GitHub.
Importez le package
Dans le code de votre application, importez la fonction createGitBook :
import { createGitBook } from "@gitbook/embed";Ou en utilisant CommonJS :
const { createGitBook } = require("@gitbook/embed");Initialisez GitBook
Créez une instance GitBook avec l’URL de votre site de documentation :
const gitbook = createGitBook({
siteURL: "https://docs.company.com",
});Créez une 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', // Facultatif : pour le contenu adaptatif ou l’accès authentifié
unsignedClaims: { // Facultatif : revendications personnalisées pour les expressions dynamiques
userId: '123',
plan: 'premium'
}
}
});
iframe.id = "gitbook-embed-container";
iframe.style.border = "none";
iframe.style.width = "100%";
iframe.style.height = "600px";Attachez le cadre
Créez une instance de cadre GitBook et intégrez-la à votre page :
const frame = gitbook.createFrame(iframe);
document.getElementById("gitbook-embed-container").appendChild(iframe);Contrôlez l’intégration par programmation
Utilisez l’instance du cadre 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();Configurez l’intégration
Configurez l’intégration avec des options de personnalisation :
frame.configure({
trademark: false,
tabs: ['assistant', 'search', 'docs'],
actions: [
{
icon: 'circle-question',
label: 'Contact Support',
onClick: () => window.open('https://support.example.com', '_blank')
}
],
greeting: { title: 'Welcome!', subtitle: 'How can I help?' },
assistantName: 'Support Copilot',
closeButton: true,
suggestions: ['What is GitBook?', 'How do I get started?'],
tools: [/* ... */]
});Écoutez les événements
Enregistrez des écouteurs d’événements pour réagir aux événements de l’intégration :
frame.on('close', () => {
console.log('Frame closed');
});
// Se désabonner une fois terminé
const unsubscribe = frame.on('navigate', (data) => {
console.log('Navigated to:', data.path);
});Référence de l’API
Usine de client
createGitBook(options: { siteURL: string })→GitBookClientclient.getFrameURL(options?: { visitor?: {...}, colorScheme?: 'light' | 'dark' })→string- Obtenir l’URL de l’iframe avec des options de cadre facultativesclient.createFrame(iframe: HTMLIFrameElement)→GitBookFrameClient- Créer un client de cadre pour communiquer avec l’iframe
Méthodes du client de cadre
frame.navigateToPage(path: string)→void- Naviguer vers une page spécifique dans l’onglet docsframe.navigateToAssistant()→void- Basculer vers 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
La plupart des options de personnalisation sont disponibles via frame.configure({...}).
onglets
ongletsRemplace les onglets affichés.
La recherche est activée par défaut. Si vous définissez onglets, l’embed n’affiche que les onglets que vous avez सूचीés.
Tapez:
('assistant' | 'search' | 'docs')[]
actions
actionsBoutons d’action personnalisés affichés dans la barre latérale à côté des onglets. Chaque bouton d’action déclenche un rappel lorsqu’il est cliqué.
Remarque: Ceci s’appelait auparavant buttons. Utilisez actions à la place.
Tapez:
Array<{ icon: string, label: string, onClick: () => void }>
greeting
greetingMessage de bienvenue affiché dans l’onglet Assistant.
Tapez:
{ title: string, subtitle: string }
assistantName
assistantNameRemplace le nom de l’assistant affiché dans l’interface utilisateur.
Tapez:
stringLongueur max:
32caractères
closeButton
closeButtonAffiche un bouton de fermeture dans l’Assistant.
Tapez:
boolean
suggestions
suggestionsQuestions suggérées affichées dans l’écran de bienvenue de l’Assistant.
Tapez:
string[]
trademark
trademarkAfficher ou masquer la marque GitBook dans l’interface d’intégration — y compris le pied de page de Docs Embed et l’identité visuelle de l’Assistant.
Tapez:
booleanPar défaut:
true
tools
toolsOutils IA personnalisés pour étendre l’Assistant. Voir Création d’outils personnalisés pour plus de détails.
Tapez:
Array<{ name: string, description: string, inputSchema: object, execute: Function, confirmation?: {...} }>
Options d’URL du cadre
Certaines options sont transmises à getFrameURL({...}).
colorScheme
colorSchemeRemplace le schéma de couleurs de l’intégration.
Lorsqu’elle est omise, l’intégration suit le CSS de l’iframe color-scheme , ce qui lui permet d’hériter de la préférence de la page parente ou du navigateur.
Tapez:
'light' | 'dark'
visitor (Accès authentifié)
visitor (Accès authentifié)À transmettre à getFrameURL({ visitor: {...} }). Utilisé pour Adaptive Content et Accès authentifié.
Tapez:
{ token?: string, unsignedClaims?: Record<string, unknown> }
Pièges courants
Oublier d’installer le package – Exécutez
npm install @gitbook/embedavant l’import.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 afficher l’iframe.
Méthodes du cadre appelées avant l’initialisation – Attendez que
createFrame()se termine avant d’appeler les méthodes du cadre.Ne pas se désabonner des événements – Pensez à 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 cadre.
Mis à jour
Ce contenu vous a-t-il été utile ?