-
Notifications
You must be signed in to change notification settings - Fork 1
/
gatsby-node.js
49 lines (43 loc) · 1.42 KB
/
gatsby-node.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const path = require("path")
const ProjectTemplate = path.resolve('./src/templates/project.js')
exports.createPages = async ({ graphql, actions, reporter }) => {
const { createPage, createRedirect } = actions
const result = await graphql(`
query {
allMdx(filter: {internal: {contentFilePath: {glob: "**/projects/*"}}}) {
nodes {
id
frontmatter {
link
}
internal {
contentFilePath
}
}
}
}
`)
if (result.errors) {
reporter.panicOnBuild('Error loading MDX result', result.errors)
}
// Create blog post pages.
const projects = result.data.allMdx.nodes
// you'll call `createPage` for each result
projects.forEach(node => {
createPage({
// As mentioned above you could also query something else like frontmatter.title above and use a helper function
// like slugify to create a slug
path: `/projects${node.frontmatter.link}`,
// Provide the path to the MDX content file so webpack can pick it up and transform it into JSX
component: `${ProjectTemplate}?__contentFilePath=${node.internal.contentFilePath}`,
// You can use the values in this context in
// our page layout component
context: { id: node.id },
})
})
createRedirect({
fromPath: `/mlforsystems`,
toPath: `/projects/mlforsystems`,
isPermanent: true, force: true, redirectInBrowser: true
})
}