Crear plugins
Los plugins son paquetes pequeños que exportan una definición Squidoc.
import { definePlugin } from "@squidoc/core";
export default definePlugin({
name: "@acme/squidoc-plugin-example",
setup(api) {
api.addGeneratedFile({
path: "example.txt",
contents: "Generado durante squidoc build.\n",
});
},
});
Los usuarios pueden configurarlos con forma de objeto:
plugins: [
{
name: "@acme/squidoc-plugin-example",
options: {
message: "Hola desde opciones.",
},
},
];
API de setup
La API soporta:
addGeneratedFilepara assets comorobots.txt,sitemap.xml,search-index.jsonyllms.txt.addHeadTagspara metadatos globales.addPageHeadTagspara metadatos por página.addDocExtensionpara formatos como.mdx.addThemeSlotpara UI que un tema puede renderizar.pluginOptionspara leer las opciones del plugin actual.
El plugin de búsqueda combina archivos generados con un slot: escribe search-index.json y registra un slot search que el tema básico renderiza.
El plugin de árbol del artículo usa el mismo patrón con el slot article-tree.
Ejemplos de referencia
api.addThemeSlot({
name: "search",
component: "@squidoc/plugin-search/Search.astro",
html: "<div data-squidoc-search>...</div>",
});