@aurorafossorg/gatsby-plugin-feed-reproducible
v4.14.0-next.2
Published
Creates an RSS feed for your Gatsby site.
Downloads
7
Readme
gatsby-plugin-feed
Create an RSS feed (or multiple feeds) for your Gatsby site.
Install
npm install gatsby-plugin-feed
How to Use
// In your gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-plugin-feed`,
options: {
query: `
{
site {
siteMetadata {
title
description
siteUrl
site_url: siteUrl
}
}
}
`,
feeds: [
{
serialize: ({ query: { site, allMarkdownRemark } }) => {
return allMarkdownRemark.nodes.map(node => {
return Object.assign({}, node.frontmatter, {
description: node.excerpt,
date: node.frontmatter.date,
url: site.siteMetadata.siteUrl + node.fields.slug,
guid: site.siteMetadata.siteUrl + node.fields.slug,
custom_elements: [{ "content:encoded": node.html }],
})
})
},
query: `
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] },
) {
nodes {
excerpt
html
fields {
slug
}
frontmatter {
title
date
}
}
}
}
`,
output: "/rss.xml",
title: "Your Site's RSS Feed",
// optional configuration to insert feed reference in pages:
// if `string` is used, it will be used to create RegExp and then test if pathname of
// current page satisfied this regular expression;
// if not provided or `undefined`, all pages will have feed reference inserted
match: "^/blog/",
// optional configuration to specify external rss feed, such as feedburner
link: "https://feeds.feedburner.com/gatsby/blog",
},
],
},
},
],
}
Each feed must include output
, query
, title
, and serialize
. You'll need to write the serialize
function in order to fit your use case.
match
is an optional configuration, indicating which pages will have feed reference included. The accepted types of match
are string
or undefined
. By default, when match
is not configured, all pages will have feed reference inserted. If string
is provided, it will be used to build a RegExp and then to test whether pathname
of current page satisfied this regular expression. Only pages that satisfied this rule will have feed reference included.
link
is an optional configuration that will override the default generated rss link from output
.
All additional options are passed through to the rss
utility. For more info on those additional options, explore the itemOptions
section of the rss
package.
Check out an example of how you could implement to your own site, with a custom serialize
function, and additional functionality.
Note: This plugin only generates the xml
file(s) when run in production
mode! To test your feed, run: gatsby build && gatsby serve
.