A createPages block that creates Gatsby pages from a Contentful content type.
const createProcessPages = new Promise((resolve,reject) => {
resolve(
graphql(
`
{
pages: allContentfulProcess {
edges {
node {
slug
layout {
internal {
type
}
}
}
}
}
}
`
).then(({
errors,
data
}) => {
if (errors) {
console.log(errors)
reject(errors)
}
const pages = data.pages.edges.map(entry => entry.node)
pages.forEach(entry => {
createPage({
path: `/process/${entry.slug}`,
component: templates['single-process'],
context: {
slug: entry.slug
}
})
})
})
)
})