-
Notifications
You must be signed in to change notification settings - Fork 0
/
gatsby-node.js
94 lines (86 loc) · 2.07 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
const path = require(`path`)
const { slash } = require(`gatsby-core-utils`)
exports.createPages = async ({ graphql, actions, reporter }) => {
const { createPage } = actions
const data = await graphql(`
{
odoo {
products(search: "", pageSize: 150) {
products {
id
name
image
image_sharp {
childImageSharp {
gatsbyImageData(width: 500)
}
}
attributeValues {
htmlColor
id
name
attributeName
attributeId
}
price
sku
productVariants {
id
name
image
price
attributeValues {
htmlColor
id
name
attributeId
}
image_sharp {
childImageSharp {
gatsbyImageData(width: 500)
}
}
}
categories {
id
name
}
}
}
categories(search: "") {
categories {
name
id
childs {
name
id
childs {
id
name
}
}
}
}
}
}
`)
const schedaProdotto = path.resolve(`./src/templates/schedaProdotto.jsx`)
var slugify = require('slugify')
data.data.odoo.products.products.forEach(scheda => {
const schedatitle = slugify(scheda.name, {
replacement: '_', // replace spaces with replacement character, defaults to `-`
remove: /[*+~.()'"!:@?]/g, // remove characters that match regex, defaults to `undefined`
})
createPage({
// will be the url for the page
path: 'prodotti/'+schedatitle,
// specify the component template of your choice
component: slash(schedaProdotto),
// In the ^template's GraphQL query, 'id' will be available
// as a GraphQL variable to query for this post's data.
context: {
data: scheda,
},
})
})
}