Adicione um feed RSS
Astro suporta geração rápida e automática de feeds RSS para blogs e outros websites orientados a conteúdo. Feeds RSS fornecem uma forma fácil para usuários se inscreverem ao seu conteúdo.
Configurando @astrojs/rss
O pacote @astrojs/rss
fornece utilitários para a geração de feeds RSS utilizando endpoints de API. Isso permite builds estáticas e geração sob demanda quando você estiver utilizando um adaptador de SSR.
- Instale
@astrojs/rss
utilizando seu gerenciador de pacotes favorito:
Garanta de que você configurou site
no astro.config
do seu projeto. Você usará isso para gerar links para seus artigos RSS.
- Crie um arquivo em
src/pages/
com o nome que preferir e a extensão.xml.js
para ser usado como a URL final do seu feed. Algumas URLs comuns para feed RSS sãofeed.xml
ourss.xml
.
O arquivo de exemplo abaixo src/pages/rss.xml.js
vai criar um feed RSS em site/rss.xml
.
- Importe o utilitário
rss()
do pacote@astrojs/rss
para o seu arquivo.xml.js
e exporte uma função que retorne ele usando os seguintes parâmetros:
Gerando items
O campo items
aceita uma lista de objetos de feed RSS, cada um com um link
, title
e pubDate
obrigatórios. Três valores opcionais também podem ser inclusos de description
(um pequeno resumo), content
(o conteúdo completo da sua postagem) e o campo customData
para incluir qualquer dado extra, como outras propriedades do frontmatter da suas postagens do blog.
Você pode gerar esse array a partir de uma esquema de coleção de conteúdo ou utilizando importações de glob para postagens de blog localizados dentro do src/pages/
.
Utilizando coleções de conteúdo
Para criar um feed RSS de páginas gerenciadas em coleções de conteúdo, utilize a função getCollection()
para pegar a lista de seus itens.
Opcional: substitua seus esquemas de coleções do blog para garantir essas propriedades de RSS esperadas.
Para garantir que cada entrada da coleção produz um item válido no feed RSS, você pode opcionalmente importar e aplicar rssSchema
ao invés de definir cada propriedade individual do seu esquema.
Utilizando importações de glob
Adicionado em:@astrojs/rss@2.1.0
Para criar um feed RSS a partir de documentos em src/pages/
, utilize o utilitário pagesGlobToRssItems()
. Ele aceita um resultado de import.meta.glob
e devolve um array de itens de feed RSS válidos (veja mais sobre como escrever padrões de glob para especificar quais páginas incluir).
Essa função assume, mas não verifica, que todas as propriedades necessárias do feed estão presentes no frontmatter de cada documento. Se você encontrar erros, verifique o frontmatter de cada página manualmente.
Em versões de @astrojs/rss
antes da v2.1.0, passe seu resultado de glob diretamente para items
sem ser envolto de pagesGlobToRssItems()
:
Incluindo conteúdo completo de postagem
Adicionado em:astro@1.6.14
A chave content
contém o conteúdo completo da postagem como HTML. Isso te permite fazer o conteúdo da sua postagem inteira disponível a leitores de feeds RSS.
Um pacote como sanitize-html
vai garantir que o seu conteúdo é propriamente sanitizado, escapado e codificado.
Ao utilizar coleções de conteúdo, renderize o body
da postagem utilizando um parser padrão de Markdown como markdown-it
e sanitize o resultado:
Ao utilizar importações de glob com Markdown, você pode utilizar o utilitário compiledContent()
para pegar o HTML renderizado para sanitização. Nota: essa funcionalidade não é suportada para arquivos MDX.
Adicionando uma folha de estilos
Estilize seu feed RSS para tornar a experiência do usuário mais agradável quando estiver visualizando o arquivo em seu navegador.
Utilize a opção stylesheet
da função rss
para especificar um caminho absoluto para sua folha de estilos.
Se você preferir não criar sua própria folha de estilos RSS, você pode utilizar uma folha de estilos pré-pronta como a folha de estilos padrão do Pretty Feed v3. Baixe a folha de estilos do GitHub e salve no diretório public/
do seu projeto.
Próximos Passos
Após visitar seu feed no navegador em seu-dominio.com.br/rss.xml
e confirmar que você consegue ver os dados das suas postagens, você pode agora promover seu feed em seu website. Adicionando o ícone RSS padrão em seu site permite que seus leitores saibam que eles podem se inscrever para suas postagens no próprio leitor de feed que preferirem.