1. Home
  2. ChevronRight@bdocs/plugin-rss

@bdocs/plugin-rss

Genera feeds RSS y Atom a partir de tu documentación Boltdocs con soporte automático de i18n.

El plugin @bdocs/plugin-rss genera automáticamente feeds RSS 2.0 y Atom a partir de las rutas de tu documentación. Soporta i18n, filtrado por colecciones y no requiere configuración — solo instala y tu sitio tiene un feed.


Inicio RápidoLink

1. Instalar el paqueteLink

pnpm add @bdocs/plugin-rss

2. Registrar el pluginLink

Agrega el plugin al array plugins en tu archivo de configuración:

boltdocs.config.ts
import { defineConfig } from 'boltdocs'
import rssPlugin from '@bdocs/plugin-rss'

export default defineConfig({
  siteUrl: 'https://mis-docs.com',
  theme: {
    title: 'Mi Documentación',
  },
  plugins: [rssPlugin()],
})

3. Construir y acceder a tu feedLink

Después de construir tu sitio, tu feed está disponible automáticamente:

pnpm boltdocs build
  • RSS: https://mis-docs.com/rss/feed-es.xml
  • Atom: https://mis-docs.com/rss/atom-es.xml

Para sitios con i18n, cada idioma recibe su propio feed:

  • https://mis-docs.com/rss/feed-en.xml (inglés)
  • https://mis-docs.com/rss/feed-es.xml (español)

Conceptos y ArquitecturaLink

Cómo FuncionaLink

  1. Recopilación de Rutas: Después de que la compilación SSG completa, el plugin lee todas las rutas generadas desde el PluginContext. Estas son las mismas rutas que se usan para generar las páginas de tu sitio.

  2. Extracción de Metadatos: Para cada ruta, el plugin extrae title, description, excerpt, date, lastUpdated y author del frontmatter de la ruta.

  3. Generación del Feed: El plugin genera feeds XML válidos (RSS 2.0 y/o Atom) con escape de entidades correcto y formato de fecha RFC 2822 / ISO 8601.

  4. Soporte i18n: Si tu configuración tiene i18n habilitado, el plugin genera automáticamente un feed separado para cada idioma. Las rutas se filtran por su prefijo de idioma (por ejemplo, /es/docs/... va al feed en español).

  5. Salida: Los archivos del feed se escriben en el directorio de salida de la compilación junto con los archivos de tu sitio estático.

¿Cuándo Se Ejecuta?Link

El plugin usa el hook de ciclo de vida afterBuild, que se ejecuta inmediatamente después de que la compilación SSG tiene éxito:

EntornoComportamiento
Compilación de producción (boltdocs build)Los feeds siempre se generan
Desarrollo (boltdocs dev)Los feeds NO se generan por defecto

Para generar feeds durante el desarrollo, establece devMode: true en las opciones del plugin.


ConfiguraciónLink

Configuración MínimaLink

El plugin funciona sin configuración. Lee automáticamente de tu boltdocs.config.ts existente:

FuenteUsado Para
siteUrlBase URL del feed (requerido — el plugin advierte si falta)
theme.titleTítulo del feed (soporta i18n Record<string, string>)
theme.descriptionDescripción del feed
i18n.localesDetermina cuántos feeds generar
i18n.defaultLocaleDetermina la ruta del feed por defecto (/feed.xml)

Opciones del PluginLink

Todas las opciones son opcionales. Pásalas a la función factory del plugin:

rssPlugin({
  limit: 50,
  format: 'both',
  paths: ['/blog', '/docs'],
})

Referencia de la APILink

Opciones del PluginLink

PropiedadTipoPredeterminadoDescripción
limitnumbersin límiteNúmero máximo de items por feed. Si no se establece, se incluyen todas las rutas. Rango: 1–500.
pathsstring[]undefinedFiltra rutas por prefijo de ruta. Solo se incluyen rutas que comienzan con estas rutas.
collectionsstring[]undefinedFiltra rutas por nombre de colección (por ejemplo, ['blog']).
format'rss' | 'atom' | 'both''rss'Qué formato(s) de feed generar.
devModebooleanfalseSi es true, genera feeds durante boltdocs dev. Deshabilitado por defecto ya que los feeds solo son útiles en producción.

Archivos GeneradosLink

El plugin escribe archivos de feed en el directorio rss/ dentro de la salida de compilación:

FormatoIdioma por DefectoOtros Idiomas
RSS/rss/feed-{locale}.xml/rss/feed-{locale}.xml
Atom/rss/atom-{locale}.xml/rss/atom-{locale}.xml

Campos del Item del FeedLink

Cada item en el feed corresponde a una ruta de documentación:

Campo RSSCampo AtomFuente
<title><title>route.title
<link><link href>siteUrl + route.path
<description><summary>route.excerpt o route.description
<pubDate><updated>route.date o route.lastUpdated
<guid><id>siteUrl + route.path

Ejemplos de UsoLink

Configuración BásicaLink

import { defineConfig } from 'boltdocs'
import rssPlugin from '@bdocs/plugin-rss'

export default defineConfig({
  siteUrl: 'https://docs.ejemplo.com',
  plugins: [rssPlugin()],
})

Solo Feed de BlogLink

Si tienes una colección de blog y solo quieres publicaciones de blog en tu feed:

rssPlugin({
  collections: ['blog'],
  limit: 30,
  format: 'both',
})

Filtro de Rutas PersonalizadoLink

Solo incluir rutas bajo /docs/guides:

rssPlugin({
  paths: ['/docs/guides'],
  limit: 10,
})

RSS y Atom JuntosLink

Genera ambos formatos simultáneamente:

rssPlugin({
  format: 'both',
  limit: 50,
})

Solución de ProblemasLink

El feed no se generaLink

  • Verifica siteUrl: El plugin requiere que siteUrl esté configurado. Sin él, el plugin muestra una advertencia y omite la generación.
  • Verifica la salida de compilación: Asegúrate de que la compilación se completó exitosamente. El hook afterBuild solo se ejecuta en compilaciones exitosas.
  • Verifica las rutas: El plugin genera feeds a partir de todas las rutas de documentación. Si no existen rutas, el feed estará vacío.

El feed no tiene itemsLink

  • Verifica los filtros de rutas: Si estás usando paths o collections, asegúrate de que tus rutas cumplan con los criterios del filtro.
  • Verifica la bandera draft: Las rutas con draft: true en el frontmatter se excluyen del feed.
  • Verifica el frontmatter: Las rutas necesitan al menos un title para aparecer en el feed. Los items sin date o lastUpdated usan la marca de tiempo actual.

Faltan feeds i18nLink

  • Verifica la configuración i18n: Asegúrate de que i18n.defaultLocale e i18n.locales estén configurados correctamente.
  • Verifica los prefijos de idioma de las rutas: Las rutas deben tener prefijos de idioma (por ejemplo, /es/docs/...) para ser incluidas en feeds específicos de un idioma.

Título del feed incorrectoLink

El título del feed se deriva de theme.title. Si tu título es un objeto i18n ({ en: 'Docs', es: 'Documentación' }), el plugin usa la clave de idioma correspondiente. Si no se encuentra ninguna coincidencia, usa el primer valor.

Last updated on July 27, 2026

Was this page helpful?