Добавление RSS-ленты
Astro поддерживает автоматическую генерацию RSS-лент для блогов и других сайтов с часто обновляемым контентом.
Настройка @astrojs/rss
Заголовок раздела «Настройка @astrojs/rss»Пакет @astrojs/rss предоставляет инструменты для создания лент через API эндпойнты. Это работает как при статической сборке, так и при использовании SSR-адаптеров.
-
Установите пакет
@astrojs/rss:shell npm install @astrojs/rssshell pnpm add @astrojs/rssshell yarn add @astrojs/rssУбедитесь, что вы настроили
siteвastro.config. Этот параметр используется для формирования ссылок на ваши статьи. -
Создайте файл в
src/pages/с расширением.xml.js(например,rss.xml.js). -
Импортируйте хелпер
rssи экспортируйте функцию GET:src/pages/rss.xml.js import rss from '@astrojs/rss';export function GET(context) {return rss({title: 'Блог Buzz',description: 'Справочник астронавта по звездам',site: context.site,items: [], // см. ниже, как наполнить списокcustomData: `<language>ru-ru</language>`,});}
Генерация записей (items)
Заголовок раздела «Генерация записей (items)»Использование коллекций контента
Заголовок раздела «Использование коллекций контента»Для создания ленты из страниц, управляемых через коллекции контента, используйте функцию getCollection():
import rss from '@astrojs/rss';import { getCollection } from 'astro:content';
export async function GET(context) { const blog = await getCollection('blog'); return rss({ title: 'Блог Buzz', description: 'Справочник астронавта по звездам', site: context.site, items: blog.map((post) => ({ title: post.data.title, pubDate: post.data.pubDate, description: post.data.description, link: `/blog/${post.id}/`, })), });}Автоматическое обнаружение ленты
Заголовок раздела «Автоматическое обнаружение ленты»Чтобы браузеры и читалки могли автоматически найти вашу ленту, добавьте тег <link> в секцию head вашего основного макета:
<link rel="alternate" type="application/rss+xml" title="Название вашего сайта" href={new URL("rss.xml", Astro.site)}/>