Referencia de la API de Plugins
Referencia completa de la API de Plugins de Boltdocs — PluginContext, caches, diagnostics, resolución de rutas y módulos virtuales. Cubre todos los campos y métodos expuestos a los hooks del lifecycle.
El objeto PluginContext que recibe cada hook del lifecycle incluye
siete namespaces enriquecidos que otorgan a los plugins acceso seguro
y tipado a la maquinaria interna del core: caches, diagnostics,
paths, virtual modules, middleware, server
y hmr.
Esta sección es la referencia oficial de la API. Léela junto con la descripción general del Sistema de Plugins para conocer la arquitectura y ejemplos.
Cada namespace tiene su propia página — usa el sidebar o las tarjetas a continuación para navegar.
PluginContext
Objeto de contexto base pasado a cada hook del lifecycle.
Caches
Cachés de transformación, rutas y memoria.
Diagnostics
Reporte estructurado de diagnósticos.
Paths
Resolución segura de rutas en el workspace.
Virtual Modules
Declaraciones de módulos virtuales en runtime.
Middleware
Pipeline de middleware de transformación.
Server
Middleware HTTP y ciclo de vida del servidor.
HMR
Observación de archivos y eventos HMR personalizados.
Lifecycle Hooks
Hooks de build/dev, cadenas de transformación y señales.
Ejemplo completo
Un plugin real que cachea una transformación costosa, reporta progreso, resuelve una ruta y registra un módulo virtual:
import { definePlugin } from 'boltdocs'
export default definePlugin<MisOpciones>((options) => ({
name: 'mi-plugin-inteligente',
client: {
slots: {
'header:right': './components/HeaderActions.tsx',
'search:dialog': './components/SearchModal.tsx',
},
providers: ['./providers/SearchProvider.tsx'],
mdxComponents: { Callout: './components/Callout.tsx' },
},
hooks: {
'frontmatter:transform'(ctx, { frontmatter, rawContent }) {
return {
...frontmatter,
readingTime: Math.ceil(rawContent.split(/\s+/).length / 200),
}
},
'search:index'(ctx, { documents }) {
ctx.logger.info(`Indexados ${documents.length} documentos de búsqueda.`)
},
'build:generate'(ctx, { routes, outDir }) {
ctx.logger.info(`Assets generados para ${routes.length} rutas en ${outDir}.`)
},
},
}))
Ver también
- Descripción general del Sistema de Plugins — arquitectura, conceptos, inicio rápido
- @bdocs/unist-utils — Utilidades AST para remark/rehype
- Releases — historial de releases
- Post de lanzamiento de Boltdocs 3.3.0 — notas detalladas de la versión