Skip to main content
View plugin on GitHub
See starters using this

gatsby-plugin-csv-feed

Build Status Current npm package version

Gatsby plugin for creating CSV data feeds. Can be used for creating dynamic Google Data Feeds, Page Feeds, and feeds for other integrations.

Installing

npm install --save gatsby-plugin-csv-feed

Usage

Here’s an example of how to create a Custom Google Data Feed:

// In your gatsby-config.js
module.exports = {
  plugins: [
    {
      resolve: "gatsby-plugin-csv-feed",
      options: {
        // Query to pass to all feed serializers (optional)
        query: `
          {
            site {
              siteMetadata {
                siteUrl
              }
            }
          }
        `,
        // Feeds
        feeds: [
          {
            query: `
              {
                allMarkdownRemark {
                  edges {
                    node {
                      frontmatter {
                        id
                        title
                        description
                        category
                        keywords
                        price
                        image
                      }
                      fields {
                        slug
                      }
                    }
                  }
                }
              }
            `,
            serialize: ({ query: { site, allMarkdownRemark } }) => {
              return allMarkdownRemark.edges.map(edge => {
                const node = Object.assign({}, edge.node.frontmatter, edge.node.fields);
                return {
                  "ID": node.id,
                  "Item title": node.title,
                  "Item description": node.description,
                  "Image URL": `${site.siteMetadata.siteUrl}${node.image}`,
                  "Price": `${Number(node.price).toLocaleString('en-us')} USD`,
                  "Item Category": node.category,
                  "Contextual keywords": node.keywords.join(';'),
                  "Final URL": `${site.siteMetadata.siteUrl}${node.slug}`,
                };
              });
            },
            output: "/product-feed.csv",
          },
        ],
      },
    },
  ]
}

License

MIT © Hutson Inc


Docs
Tutorials
Plugins
Blog
Showcase