Предыдущие статьи
- Блог на Gatsby + Obsidian from scratch ч.1
- Блог на Gatsby + Obsidian from scratch ч.2
- Блог на Gatsby + Obsidian from scratch ч.3
- Блог на Gatsby + Obsidian from scratch ч.4
- Блог на Gatsby и Obsidian ч.5
- Блог на Gatsby. Rss лента ч.6 <-- Вы тут
- Блог на Gatsby. Разные изображения для микроразметки ч.7
Погнали
В этой части добавим на блог rss ленту. Для начала установим плагин gatsby-plugin-feed
npm i gatsby-plugin-feed
Добавляем плагин в секцию plugins в gatsby-config.js
// gatsby-config.js
module.exports = {
// ...
plugins: [
{
resolve: 'gatsby-plugin-feed',
options: {
feeds: [
{
serialize: ({ query: { site, allMarkdownRemark } }) => {
return allMarkdownRemark.nodes.map(node => {
const postUrl = `${site.siteMetadata.siteUrl}/${node.fields.slug}/`;
return Object.assign({}, node.frontmatter, {
title: node.fields.title,
description: `${node.excerpt}\nТеги: ${(node.frontmatter.tags || []).join(',')}`,
date: node.frontmatter.date,
url: postUrl,
guid: postUrl,
})
})
},
query: `
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] },
) {
nodes {
excerpt
fields {
slug
title
}
frontmatter {
date
tags
}
}
}
}
`,
output: "/rss.xml",
title: "The Strange Adventurer's RSS Feed",
}
]
}
},
]
}
Выше мы указали в методе serialize
как именно мы обрабатываем данные и в query
указали запрос, в котором мы эти данные запрашиваем. Теперь можно проверить во что собирается наша rss лента. Для этого нам необходимо выполнить команду:
npm run build && npm run serve
После чего открыть в браузере http://localhost:9000/rss.xml
- если все хорошо - то должны увидеть содержимое с анонсами статей в xml формате!