-
Notifications
You must be signed in to change notification settings - Fork 4
/
gatsby-node.js
30 lines (27 loc) · 946 Bytes
/
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
const path = require('path');
const pageCreator = require('./config/pageCreator');
require('dotenv-safe').load();
exports.createPages = ({ graphql, boundActionCreators }) => {
return pageCreator(
graphql,
boundActionCreators
);
}
// Add custom url pathname for issues
exports.onCreateNode = ({ node, boundActionCreators, getNode }) => {
const { createNodeField } = boundActionCreators;
let slug;
if (node.internal.type === `MarkdownRemark`) {
const fileNode = getNode(node.parent)
const parsedFilePath = path.parse(fileNode.relativePath)
if (parsedFilePath.name !== `index` && parsedFilePath.dir !== ``) {
slug = `/${parsedFilePath.dir}/${parsedFilePath.name}/`
} else if (parsedFilePath.dir === ``) {
slug = `/${parsedFilePath.name}/`
} else {
slug = `/${parsedFilePath.dir}/`
}
// Add slug as a field on the node.
createNodeField({ node, name: `slug`, value: slug })
}
}