const _ = require("lodash") const Promise = require('bluebird') const path = require('path') const { createFilePath } = require('gatsby-source-filesystem') exports.createPages = ({ graphql, boundActionCreators }) => { const { createPage } = boundActionCreators return new Promise((resolve, reject) => { const blogPost = path.resolve("./src/templates/blog-post.js") resolve( graphql( ` { allMarkdownRemark(limit: 1000) { edges { node { frontmatter { path } } } } } ` ).then(result => { if (result.errors) { console.log(result.errors) reject(result.errors) } // Create blog posts pages. _.each(result.data.allMarkdownRemark.edges, edge => { createPage({ path: edge.node.frontmatter.path, component: blogPost, context: { path: edge.node.frontmatter.path, }, }) }) }) ) }) } exports.onCreateNode = ({ node, boundActionCreators, getNode }) => { const { createNodeField } = boundActionCreators if (node.internal.type === `MarkdownRemark`) { const value = createFilePath({ node, getNode }) createNodeField({ name: `slug`, node, value, }) } }