-
Notifications
You must be signed in to change notification settings - Fork 0
/
gatsby-node.js
58 lines (56 loc) · 1.33 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
50
51
52
53
54
55
56
57
58
exports.onCreateWebpackConfig = ({ stage, actions, getConfig }) => {
if (stage === "build-html") {
actions.setWebpackConfig({
externals: getConfig().externals.concat(function (
context,
request,
callback
) {
const regex = /^@?firebase(\/(.+))?/;
if (regex.test(request)) {
return callback(null, `umd ${request}`);
}
callback();
}),
});
}
};
exports.createPages = async function ({ graphql, actions }) {
const { createPage } = actions;
const response = await graphql(`
query {
allContentfulBlogModel {
nodes {
title
slug
publishedDate(formatString: "YYYY MMM, DD")
featuredImage {
fluid {
src
}
}
body {
json
}
excerpt {
excerpt
}
}
}
}
`);
response.data.allContentfulBlogModel.nodes.forEach((edge) => {
createPage({
path: `/blog/${edge.slug}`,
component: require.resolve("./src/components/Blog/blogs.tsx"),
context: {
title: edge.title,
slug: edge.slug,
publishedDate: edge.publishedDate,
featuredImage: edge.featuredImage.fluid.src,
body: edge.body.json,
excerpt: edge,
},
});
});
};