@jpfulton/gatsby-plugin-feed-mdx
v0.0.4
Published
Creates an RSS feed for your Gatsby MDX site.
Downloads
7
Maintainers
Readme
gatsby-plugin-feed-mdx
This is a fork of gatsby-plugin-feed-mdx which is a fork of gatsby-plugin-feed. Create an RSS feed (or multiple feeds) for your Gatsby site with MDX.
It was forked to update package references to that latest Gatsby.
Install
yarn install gatsby-plugin-feed-mdx
How to Use
// In your gatsby-config.js
module.exports = {
plugins: [
{
{
resolve: `@jpfulton/gatsby-plugin-feed-mdx`,
options: {
query: `
{
site {
siteMetadata {
title
description
siteUrl
site_url: siteUrl
}
}
}
`,
feeds: [
{
serialize: ({ query: { site, allMdx } }) => {
return allMdx.edges.map((edge) => {
return Object.assign({}, edge.node.frontmatter, {
description:
edge.node.frontmatter.description ?? edge.node.excerpt,
date: edge.node.frontmatter.date,
url:
site.siteMetadata.siteUrl + "/blog" + edge.node.fields.slug,
guid:
site.siteMetadata.siteUrl + "/blog" + edge.node.fields.slug,
custom_elements: [{ "content:encoded": edge.node.body }],
});
});
},
query: `
{
allMdx(
sort: { frontmatter: {date: DESC} },
) {
edges {
node {
excerpt
body
fields { slug }
frontmatter {
title
date
description
}
}
}
}
}
`,
output: "/rss.xml",
title: "jpatrickfulton.dev",
// 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/",
},
],
},
},
],
};
Each feed must include output
, query
, and title
. Additionally, it is strongly recommended to pass a custom serialize
function, otherwise an internal serialize function will be used which may not exactly match your particular 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.
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
.