Les emplacements
Un plugin n'affiche rien n'importe où : il remplit des emplacements, des endroits précis de Hodi prévus pour les plugins. Chaque carte ci-dessous porte le nom d'un emplacement, tel qu'il s'écrit dans le code, et mène à sa page : où l'emplacement se trouve dans Hodi, un exemple et ce que Hodi donne au composant.
Ce qu'est un emplacement
Hodi garde la main sur ses propres écrans. Un plugin ne peut pas modifier une page de Hodi, ni y ajouter un bouton où il veut. À la place, Hodi prévoit des emplacements : une entrée dans Réglages, une carte dans le tableau de bord du serveur, un bouton sous un article…
Pour chaque emplacement, le plugin donne un composant React. Hodi affiche ce composant au bon endroit, au bon moment, et seulement pour les bonnes personnes.
Déclarer un emplacement
La partie web appelle definePlugin() une seule fois, dans web/index.tsx. definePlugin() reçoit un objet : chaque clé de cet objet est le nom d'un emplacement, et la valeur de la clé est ce que le plugin affiche dans cet emplacement.
import { definePlugin } from 'hodi:sdk'
definePlugin({
settingsPage: HelloCard,
readerAction: ReportButton
})Dans cet exemple, le plugin remplit deux emplacements :
settingsPage: la carteHelloCard, sur la page du plugin dans Serveur › Plugins ;readerAction: le boutonReportButton, sous chaque article ouvert.
Un emplacement que le plugin ne donne pas reste vide. Si le composant d'un plugin plante, Hodi enlève ce composant, et le reste de la page continue de marcher.