-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgatsby-node.js
140 lines (135 loc) · 3.97 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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
const path = require(`path`)
const { createFilePath } = require(`gatsby-source-filesystem`)
exports.createPages = async ({ graphql, actions }) => {
const { createPage } = actions
const blogPost = path.resolve(`./src/templates/blog-post.js`)
const lernPost = path.resolve(`./src/templates/learnplan.js`)
const quadrant = path.resolve(`./src/templates/quadrant.js`)
const radarpost = path.resolve(`./src/templates/radar-post.js`)
const cockpitData = await graphql(`
{
allCockpitQuadrant(filter: {lang: {eq: "default"}}) {
edges {
node {
id
title {
value
slug
}
Identifier {
value
}
}
}
}
allCockpitTechradar(filter: {lang: {eq: "default"}}) {
edges {
node {
id
title {
value
slug
}
subtitle {
value
}
quadrant {
value
}
}
}
}
allCockpitLeanplan(filter: {visible: {value: {eq: true}}, lang: {eq: "default"}},sort: {fields: title___value, order: DESC}) {
edges {
node {
id
title {
value
slug
}
mediabgcolor {
value
}
bodytext {
value {
childMarkdownRemark {
html
}
}
}
}
}
}
}
`)
if (cockpitData.errors) {
throw cockpitData.errors
}
// allCockpitQuadrant
const quadranten = cockpitData.data.allCockpitQuadrant.edges
quadranten.forEach((post, index) => {
const previous = index === quadranten.length - 1 ? null : quadranten[index + 1].node
const next = index === 0 ? null : quadranten[index - 1].node
const slug = post.node.title.slug
createPage({
path: "technologien/" + slug,
component: quadrant,
context: {
slug: slug,
postid: post.node.id,
radarfilter: post.node.Identifier.value,
previous,
next,
},
})
// Create RadatItem-Pages
const radaritems = cockpitData.data.allCockpitTechradar.edges
radaritems.forEach((item, index) => {
if(post.node.Identifier.value == item.node.quadrant.value) {
const previous = index === radaritems.length - 1 ? null : radaritems[index + 1].node
const next = index === 0 ? null : radaritems[index - 1].node
const itemslug = item.node.title.slug
createPage({
path: "technologien/" + slug + "/" + itemslug,
component: radarpost,
context: {
slug: itemslug,
quadrantslug: post.node.title.slug,
postid: item.node.id,
// radarfilter: post.node.Identifier.value,
previous,
next,
},
})
}
})
})
// allCockpitLeanplan
const lernplan = cockpitData.data.allCockpitLeanplan.edges
lernplan.forEach((post, index) => {
const previous = index === lernplan.length - 1 ? null : lernplan[index + 1].node
const next = index === 0 ? null : lernplan[index - 1].node
const slug = post.node.title.slug
createPage({
path: "lernplan/" + slug,
component: lernPost,
context: {
slug: slug,
postid: post.node.id,
previous,
next,
},
})
})
}
exports.onCreateNode = ({ node, actions, getNode }) => {
const { createNodeField } = actions
if (node.internal.type === `cockpitBlogpost`) {
const value = createFilePath({ node, getNode })
createNodeField({
name: `slug`,
node,
value,
})
}
}