1. Home
  2. ChevronRightGetting-started
  3. ChevronRightConfiguración

Configuración

Un recorrido guiado por cada clave de nivel superior en boltdocs.config.ts y los problemas reales que cada una resuelve.

boltdocs.config.ts es el único archivo de configuración para todo tu sitio de documentación. Vive en la raíz de tu proyecto junto a package.json y controla todo, desde el título del sitio hasta el stack de plugins y el comportamiento de SEO.

boltdocs.config.ts
import { defineConfig } from 'boltdocs'

export default defineConfig({
  siteUrl: 'https://my-project.com',
  base: '/docs',
  theme: {
    title: 'My Project',
    githubRepo: 'my-org/my-project',
  },
})

Boltdocs lee este archivo al iniciar y genera una configuración completa de Vite internamente. Nunca necesitas tocar un vite.config.ts.


Claves de Nivel SuperiorLink

PropiedadTipoPor DefectoDescripción
siteUrlstringundefinedLa URL de producción de tu sitio. Crítica para generar sitemap.xml y tags canónicos de SEO.
basestring'/'La sub-ruta donde se despliega el sitio de docs (por ejemplo, /docs). Todos los assets estáticos y enlaces internos serán relativos a esto.
docsDirstring'./docs'Ruta al directorio que contiene tu contenido Markdown. Relativa a la raíz del proyecto.
pluginsBoltdocsPlugin[][]Un array de plugins de Boltdocs. Consulta la pestaña Plugins para la referencia completa del sistema de plugins.
themeThemeConfigControla la apariencia visual, navegación, sidebar y opciones de visualización.
seoSeoConfigControla el comportamiento de indexación y generación de thumbnails Open Graph.
robotsRobotsConfigGenera robots.txt y enlaza tu sitemap.
integrationsIntegrationsConfigHabilita integraciones de terceros como Google Analytics 4 y Google Tag Manager.
i18nI18nConfigHabilita documentación multilingüe con enrutamiento basado en carpetas por locale.
versionsVersionsConfigHabilita documentación versionada lado a lado.
collectionsCollectionsConfigConfigura el sistema de colecciones dinámicas (blog) para agrupar publicaciones relacionadas.
directoryMetaRecord<string, DirectoryMeta>Sobreescribe títulos del sidebar, iconos y orden para directorios usando archivos meta.json.
securitySecurityConfigConfigura headers de seguridad HTTP y reglas CSP.
viteViteUserConfigExtiende la configuración de Vite generada internamente con opciones personalizadas.

ThemeConfigLink

Controla toda la shell visual de tu sitio de documentación.

PropiedadTipoPor DefectoDescripción
titlestring | Record<string, string>'Boltdocs'El título principal mostrado en la navbar y pestañas del navegador. Soporta mapas de claves de locale para i18n.
descriptionstringUna descripción corta usada en meta tags de SEO por defecto.
logoLogoConfigundefinedImágenes de logo personalizadas para modos claro y oscuro.
faviconstringRuta al favicon (relativa a public/).
githubRepostringRepositorio en formato owner/repo. Habilita el enlace de GitHub en la navbar automáticamente.
navbarNavbarItem[]Enlaces de navegación de nivel superior. Soporta elementos anidados con dropdown.
tabsTabConfig[]Franja de pestañas horizontal sobre el sidebar. Consulta Enrutamiento por Sistema de Archivos.
sidebarSidebarConfigEstructura del sidebar definida manualmente (deshabilita el auto-descubrimiento para esos prefijos).
sidebarGroupsRecord<string, SidebarGroupConfig>Sobreescribe títulos e iconos de grupos sin definir un sidebar manual completo.
codeThemeCodeThemeConfigTema de Shiki usado para el resaltado de código.
editLinkstringPlantilla de URL para el enlace "Editar esta página". Usa :path como placeholder para la ruta relativa del archivo actual.
socialLinksSocialLink[]Enlaces de iconos extra (Twitter/X, Discord, etc.) mostrados en la navbar.
communityHelpstringEnlace de soporte (por ejemplo, URL de Discord, Slack o foro) mostrado en el pie de página.
versionstringCadena de versión del release mostrada en la navbar.

LogoConfigLink

PropiedadTipoPor DefectoDescripción
darkstringRuta a la imagen del logo mostrada en modo oscuro (relativa a public/).
lightstringRuta a la imagen del logo mostrada en modo claro.
altstringTítuloTexto alternativo para el <img> del logo.
widthnumberAncho explícito en píxeles para la imagen del logo.
heightnumberAlto explícito en píxeles para la imagen del logo.

CodeThemeConfigLink

PropiedadTipoPor DefectoDescripción
lightstring'github-light'Nombre del tema de Shiki para modo claro.
darkstring'github-dark'Nombre del tema de Shiki para modo oscuro.

Temas disponibles: github-light, github-dark, tokyo-night, dracula, nord, one-dark-pro, one-light.


SeoConfigLink

Controla cómo los motores de búsqueda indexan tu sitio y cómo se ven los compartidos en redes sociales.

PropiedadTipoPor DefectoDescripción
indexing'all' | 'none' | 'noindex' | 'nofollow''all'Controla la directiva <meta name="robots"> aplicada a cada página.
thumbnailsThumbnailConfigGenera imágenes Open Graph para cada página usando una plantilla de fondo.

ThumbnailConfigLink

PropiedadTipoDescripción
backgroundstringRuta (relativa a public/) a la imagen de fondo usada para thumbnails OG.

RobotsConfigLink

Genera un archivo robots.txt en tiempo de compilación.

PropiedadTipoDescripción
rulesRobotsRule[]Array de reglas de rastreo. Cada regla acepta userAgent, allow y disallow.
sitemapsstring[]URLs completas de tu(s) sitemap(s) para incluir en robots.txt.
boltdocs.config.ts
export default defineConfig({
  robots: {
    rules: [
      { userAgent: '*', allow: '/' },
    ],
    sitemaps: ['https://my-project.com/sitemap.xml'],
  },
})

IntegrationsConfigLink

PropiedadTipoDescripción
ga4GA4ConfigConfiguración de Google Analytics 4.
gtmGTMConfigConfiguración de Google Tag Manager.

GA4ConfigLink

PropiedadTipoDescripción
measurementIdstringTu ID de Medición de GA4 (por ejemplo, 'G-XXXXXXXXXX'). Boltdocs inyecta el script de rastreo automáticamente.

GTMConfigLink

PropiedadTipoDescripción
tagIdstringTu ID de Contenedor de Google Tag Manager (por ejemplo, 'GTM-XXXXXX').
dataLayerNamestringNombre personalizado para el dataLayer de GTM (por defecto 'dataLayer').
previewstringCadena de consulta de identificador de preview/entorno de GTM.

I18nConfigLink

PropiedadTipoRequeridoDescripción
defaultLocalestringEl código de idioma principal (por ejemplo, 'en').
localesstring[] | Record<string, string>Todos los códiges de locale soportados.
localeConfigsRecord<string, LocaleConfig>Configuraciones de visualización por locale (label, direction, htmlLang).

Consulta la guía de Internacionalización para más detalles.


VersionsConfigLink

PropiedadTipoRequeridoDescripción
defaultVersionstringLa ruta de versión considerada como la actual por defecto.
versionsVersionConfig[]Lista ordenada de versiones disponibles.
prefixstringCadena antepuesta a la ruta de carpeta de cada versión.

Consulta la guía de Versionado para más detalles.


CollectionsConfigLink

Configura el sistema de colecciones dinámicas — perfecto para blogs, notas de release, changelogs o cualquier contenido que siga una estructura repetitiva. Las colecciones se definen con nombres de carpeta entre corchetes (por ejemplo, [blog]) dentro de tu directorio docs/.

PropiedadTipoPor DefectoDescripción
postsPerPagenumber10Número de publicaciones mostradas por página en los índices de listado de colecciones.
defaultCollectionstring'blog'El ID de colección usado por BlogList cuando no se especifica una colección explícitamente.
dateFormatstring'MMMM dd, yyyy'Cadena de formato de fecha para renderizar las fechas de publicación en páginas de listado.
sortBy'date' | 'title' | 'sidebarPosition''date'Campo usado para ordenar publicaciones dentro de una colección.
boltdocs.config.ts
export default defineConfig({
  collections: {
    postsPerPage: 12,
    defaultCollection: 'blog',
    dateFormat: 'MMM dd, yyyy',
    sortBy: 'date',
  },
})
Lightbulb
Configuración Rápida

Las colecciones funcionan de fábrica sin ninguna configuración. Simplemente crea una carpeta entre corchetes como [blog] dentro de docs/ y agrega tus archivos MDX. Usa collections solo cuando necesites sobreescribir los valores por defecto.

Consulta la guía de Colecciones para más detalles sobre convenciones de carpetas, vistas personalizadas y datos de loaders.


directoryMetaLink

Un mecanismo poderoso para personalizar cómo aparecen los directorios en el sidebar sin escribir ningún código. Boltdocs escanea automáticamente archivos meta.json dentro de tu directorio docs/ y los fusiona en la configuración del sidebar en tiempo de compilación.

PropiedadTipoDescripción
titlestringTítulo de visualización personalizado para el directorio en el sidebar.
ordernumber | string[]Posición numérica u ordenamiento explícito de elementos hijos dentro del directorio.
iconstringNombre del icono mostrado junto a la etiqueta del directorio (soporta iconos de Lucide).
collapsiblebooleanSi el grupo del sidebar es plegable.
collapsedbooleanSi el grupo inicia en estado colapsado.

Usando Archivos meta.json (Recomendado)Link

Coloca un meta.json (o _meta.json) en cualquier directorio para configurarlo automáticamente:

(guides)/getting-started/meta.json
{
  "title": "Primeros Pasos",
  "order": 1,
  "icon": "Rocket",
  "collapsed": false
}

Usando directoryMeta en ConfiguraciónLink

También puedes definir metadatos directamente en boltdocs.config.ts para directorios que no controlas o cuando prefieres una configuración centralizada:

boltdocs.config.ts
export default defineConfig({
  directoryMeta: {
    'guides/getting-started': {
      title: 'Inicio Rápido',
      icon: 'Zap',
      order: 0,
    },
    'api': {
      title: 'Referencia API',
      icon: 'Code2',
      collapsed: false,
    },
  },
})
Info
Formato de Ruta

Las claves de directorio usan la ruta relativa desde tu directorio docs/ (por ejemplo, 'guides/getting-started'). El directorio raíz se representa como '.'.


SecurityConfigLink

Configura headers de respuesta, ajustes de seguridad y Content Security Policy (CSP).

PropiedadTipoDescripción
enableCSPbooleanEstablece en true para inyectar un header de Content Security Policy seguro por defecto.
headersRecord<string, string>Headers HTTP personalizados enviados en todas las solicitudes.
customHeadersRecord<string, string>Headers de sobreescritura adicionales para el servidor web.

Ejemplo CompletoLink

boltdocs.config.ts
import { defineConfig } from 'boltdocs'
import mermaidPlugin from '@bdocs/plugin-mermaid'

export default defineConfig({
  siteUrl: 'https://my-project.com',
  base: '/docs',
  plugins: [mermaidPlugin()],
  seo: {
    indexing: 'all',
    thumbnails: {
      background: '/og-image.webp',
    },
  },
  theme: {
    title: 'My Project',
    description: 'My project documentation.',
    logo: {
      dark: '/logo-light.svg',
      light: '/logo-dark.svg',
      alt: 'My Project Logo',
    },
    githubRepo: 'my-org/my-project',
    codeTheme: {
      light: 'github-light',
      dark: 'github-dark',
    },
    editLink: 'https://github.com/my-org/my-project/edit/main/docs/:path',
    tabs: [
      { id: 'guides', text: 'Guides', icon: 'BookOpen' },
      { id: 'api', text: 'API', icon: 'Code2' },
    ],
    navbar: [
      { label: 'Docs', href: '/docs' },
    ],
  },
  robots: {
    rules: [{ userAgent: '*', allow: '/' }],
    sitemaps: ['https://my-project.com/sitemap.xml'],
  },
  collections: {
    postsPerPage: 12,
    defaultCollection: 'blog',
    sortBy: 'date',
  },
  directoryMeta: {
    'guides/getting-started': {
      title: 'Inicio Rápido',
      icon: 'Zap',
      order: 0,
    },
  },
  integrations: {
    ga4: {
      measurementId: 'G-XXXXXXXXXX',
    },
  },
})
Last updated on July 27, 2026

Was this page helpful?