44 lines
974 B
JavaScript
Executable File
44 lines
974 B
JavaScript
Executable File
const {createFilePath} = require('gatsby-source-filesystem')
|
|
const path = require('path')
|
|
|
|
exports.onCreateNode = ({node, getNode, actions}) => {
|
|
const {createNodeField} = actions
|
|
if (node.internal.type === 'MarkdownRemark') {
|
|
const slug = createFilePath({node, getNode, basePath: 'content', trailingSlash: false})
|
|
createNodeField({
|
|
node,
|
|
name: 'slug',
|
|
value: slug
|
|
})
|
|
}
|
|
}
|
|
|
|
exports.createPages = ({graphql, actions}) => {
|
|
const {createPage} = actions
|
|
return graphql(`
|
|
{
|
|
allMarkdownRemark {
|
|
edges {
|
|
node {
|
|
id
|
|
fields {
|
|
slug
|
|
}
|
|
html
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`).then(result => {
|
|
result.data.allMarkdownRemark.edges.forEach(({node}) => {
|
|
createPage({
|
|
path: node.fields.slug,
|
|
component: path.resolve('./src/templates/Page.js'),
|
|
context: {
|
|
slug: node.fields.slug
|
|
}
|
|
})
|
|
})
|
|
})
|
|
}
|