Community Plugin
View plugin on GitHubCreate a json file (or multiple files) for your Gatsby site. This package is based on gatsby-plugin-feed.
Install
npm install gatsby-plugin-json
How to Use
// In your gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-plugin-json`,
options: {
files: [
{
serialize: ({ query: { allMarkdownRemark } }) => {
return allMarkdownRemark.edges.map(edge => {
return Object.assign({}, edge.node.frontmatter, {
description: edge.node.excerpt,
date: edge.node.frontmatter.date,
url: site.siteMetadata.siteUrl + edge.node.fields.slug,
guid: site.siteMetadata.siteUrl + edge.node.fields.slug,
custom_elements: [{ "content:encoded": edge.node.html }],
})
})
},
query: `
{
allMarkdownRemark(
sort: { order: DESC, fields: [frontmatter___date] },
) {
edges {
node {
frontmatter {
title
date
}
}
}
}
}
`,
output: "/data.json",
},
],
},
},
],
}
Each file must include output
and query
. 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.
NOTE: This plugin only generates the json
file(s) when run in production
mode! To test your feed, run: gatsby build && gatsby serve
.