RSS
Astro proporciona una generación rápida y automática de RSS feeds para blogs u otros sitios web con mucho contenido. Los feeds RSS proporcionan una forma fácil para que los usuarios se suscriban a tu contenido.
Configurando @astrojs/rss
El paquete @astrojs/rss
provee helpers para generar RSS feeds utilizando API endpoints. Esto desbloquea la generación de RSS feeds para builds estáticos y on-demand para cuando utilizamos un adaptador SSR.
-
instala
@astrojs/rss
utilizando tu gestor de paquetes favorito:Asegurate de haber configurado un
site
en elastro.config
de tu proyecto. Lo usarás para generar links a tus artículos RSS. -
Crea un archivo en
src/pages/
con un nombre de tu elección y la extensión.xml.js
para ser utilizado como la URL de salida de tu feed. Algunos nombres comunes de URL de feed RSS sonfeed.xml
orss.xml
.El archivo de ejemplo a continuación
src/pages/rss.xml.js
creará un feed RSS ensite/rss.xml
. -
Importa el helper
rss()
del paquete@astrojs/rss
en tu archivo.xml.js
y exporta una función que lo devuelve utilizando los siguientes parámetros:
Generando items
El campo items
acepta una lista de objetos de feed RSS, cada uno con un link
, title
y pubDate
requeridos. También se pueden incluir tres valores opcionales: description
(una breve descripción), content
(el contenido completo de tu publicación) y un campo customData
para incluir cualquier dato adicional, como otras propiedades de frontmatter de tus publicaciones de blog.
Puedes generar esta matriz a partir de un esquema de colección de contenido o utilizando importaciones globales para las publicaciones del blog ubicadas dentro de src/pages/
.
Usando colecciones de contenido
Para crear un RSS feed de páginas manejadas en colecciones de contenido, utiliza la función getCollection()
para recuperar la lista de tus artículos.
Opcional: reemplaza tu esquema de colección de blog existente para cumplir con las propiedades de RSS esperadas.
Para asegurarte de que cada entrada de blog produzca un elemento de feed RSS válido, puedes importar y aplicar opcionalmente rssSchema
en lugar de definir cada propiedad individual de tu esquema.
Usando glob imports
Agregado en:@astrojs/rss@2.1.0
Para crear un RSS feed de documentos en src/pages/
, utiliza la función pagesGlobToRssItems()
. Esta acepta un resultado de import.meta.glob
y devuelve un array de items RSS válidos (consulta más sobre escribir patrones glob para especificar qué páginas incluir).
Esta función asume, pero no verifica, que todas las propiedades RSS necesarias están presentes en el frontmatter de cada documento. Si encuentras errores, verifica manualmente el frontmatter de cada página.
En versiones de @astrojs/rss
anteriores a la v2.1.0, pasa tu resultado de glob directamente a items
sin el wrapper pagesGlobToRssItems()
:
Incluyendo contenido completo de un artículo
Agregado en:astro@1.6.14
La llave content
contiene el contenido completo del post como HTML. Esto te permite hacer disponible todo el contenido del post a los lectores de RSS.
Un paquete como sanitize-html
se asegurará de que tu contenido esté correctamente sanitizado, escapado y codificado.
Cuando utilices colecciones de contenido, renderiza el body
del post usando un parser de Markdown estándar como markdown-it
y desinfecta el resultado:
Cuando utilices imports glob con Markdown, puedes utilizar el helper compiledContent()
para recuperar el HTML renderizado para desinfectarlo. Nota: esta función no es compatible con archivos MDX.
Añadiendo una hoja de estilos
Puedes estilar tu RSS feed para proveer una experiencia de usuario más placentera a la hora de ver el archivo en el navegador.
Utiliza la opción stylesheet
de la helper function rss
para especificar un path absoluto a tu hoja de estilos.
Si prefieres no crear tu propia hoja de estilos, puedes utilizar una hoja de estilos predefinida como la hoja de estilos predeterminada de Pretty Feed v3. Descarga la hoja de estilos desde GitHub y guárdala en el directorio public/
de tu proyecto.
Siguientes pasos
Después de visitar tu feed en el navegador en your-domain.com/rss.xml
y confirmar que puedes ver datos para cada una de tus publicaciones, ahora puedes promocionar tu feed en tu sitio web. Agregar el icono estándar de RSS a tu sitio informa a tus lectores que pueden suscribirse a tus publicaciones en su propio lector de feeds.