-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgatsby-node.js
141 lines (127 loc) · 8.68 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
const path = require('path');
// remove duplicate pages generated by Gatsby for keeping subfolder organization, but not affecting SEO
exports.onCreatePage = ({ page, actions }) => {
const { deletePage } = actions;
if (
page.path.startsWith('/main/') ||
page.path.startsWith('/posts/') ||
page.path.startsWith('/extras/') ||
page.path.startsWith('/freelance-subpages/')
) {
deletePage(page);
}
};
exports.createPages = async ({ actions, graphql }) => {
const { createPage } = actions;
const result = await graphql(`
{
allMdx {
nodes {
id
frontmatter {
slug
}
internal {
contentFilePath
}
}
}
}
`);
if (result.errors) {
throw new Error(result.errors);
}
const excludedFiles = [
'adventures_template.mdx',
'research_template.mdx',
'thoughts_template.mdx'
]
// process mdx files of posts by checking if the contentFilePath includes 'src/pages/posts', but not excludedFiles
result.data.allMdx.nodes.forEach((node) => {
if ( excludedFiles.some((templateName) => node.internal.contentFilePath.includes(templateName)) ) { return }
if (node.internal.contentFilePath.includes('src/pages/posts')) {
const PostTemplate = process.env.NODE_ENV === "development"
? path.resolve(`./src/templates/post_development.js`)
: path.resolve(`./src/templates/post.js`);
const slug = node.frontmatter.slug;
const slugParts = slug.split('/').filter(part => part !== '');
const section = slugParts[0];
const postName = slugParts[1];
const postsFilterRegex = `/${section}/`;
createPage({
path: node.frontmatter.slug,
component: `${PostTemplate}?__contentFilePath=${node.internal.contentFilePath}`,
context: {
id: node.id,
postsFilterRegex,
imagePathRegex: `^posts/${section}/content/${postName}/`,
},
});
}
});
createPage({path: "/frog", component: path.resolve(`src/components/NotFound/index.js`)});
createPage({path: "/adventures", component: path.resolve(`src/pages/main/adventures.js`)});
createPage({path: "/research", component: path.resolve(`src/pages/main/research.js`)});
createPage({path: "/thoughts", component: path.resolve(`src/pages/main/thoughts.js`)});
createPage({path: "/tags", component: path.resolve(`src/pages/main/tags.js`)});
createPage({path: "/handbook", component: path.resolve(`src/pages/main/travel_handbook.js`)});
createPage({path: "/publications", component: path.resolve(`src/pages/main/publications.js`)});
createPage({path: "/software", component: path.resolve(`src/pages/main/software.js`)});
createPage({path: "/music", component: path.resolve(`src/pages/main/music.js`)});
createPage({path: "/course", component: path.resolve(`src/pages/main/course.js`)});
createPage({path: "/talks", component: path.resolve(`src/pages/main/talks.js`)});
createPage({path: "/goals", component: path.resolve(`src/pages/main/goals.js`)});
createPage({path: "/exploration", component: path.resolve(`src/pages/main/exploration.js`)});
createPage({path: "/freelance", component: path.resolve(`src/pages/main/freelance.js`)});
createPage({path: "/freelance/ru", component: path.resolve(`src/pages/main/freelance_ru.js`)});
createPage({path: "/freelance/services", component: path.resolve(`src/pages/freelance-subpages/services.mdx`)});
createPage({path: "/freelance/ru/services", component: path.resolve(`src/pages/freelance-subpages/services_ru.mdx`)});
createPage({path: "/freelance/projects/machine_learning", component: path.resolve(`src/pages/freelance-subpages/machine_learning.js`)});
createPage({path: "/freelance/ru/projects/machine_learning", component: path.resolve(`src/pages/freelance-subpages/machine_learning_ru.js`)});
createPage({path: "/freelance/projects/data_analysis", component: path.resolve(`src/pages/freelance-subpages/data_analysis.js`)});
createPage({path: "/freelance/ru/projects/data_analysis", component: path.resolve(`src/pages/freelance-subpages/data_analysis_ru.js`)});
createPage({path: "/freelance/projects/data_visualization", component: path.resolve(`src/pages/freelance-subpages/data_visualization.js`)});
createPage({path: "/freelance/ru/projects/data_visualization", component: path.resolve(`src/pages/freelance-subpages/data_visualization_ru.js`)});
createPage({path: "/freelance/projects/data_collection", component: path.resolve(`src/pages/freelance-subpages/data_collection.js`)});
createPage({path: "/freelance/ru/projects/data_collection", component: path.resolve(`src/pages/freelance-subpages/data_collection_ru.js`)});
createPage({path: "/freelance/projects/python_apps", component: path.resolve(`src/pages/freelance-subpages/python_apps.js`)});
createPage({path: "/freelance/ru/projects/python_apps", component: path.resolve(`src/pages/freelance-subpages/python_apps_ru.js`)});
createPage({path: "/freelance/projects/web_development", component: path.resolve(`src/pages/freelance-subpages/web_development.js`)});
createPage({path: "/freelance/ru/projects/web_development", component: path.resolve(`src/pages/freelance-subpages/web_development_ru.js`)});
createPage({path: "/freelance/projects/research", component: path.resolve(`src/pages/freelance-subpages/research.js`)});
createPage({path: "/freelance/ru/projects/research", component: path.resolve(`src/pages/freelance-subpages/research_ru.js`)});
createPage({path: "/freelance/projects/technical_writing", component: path.resolve(`src/pages/freelance-subpages/technical_writing.js`)});
createPage({path: "/freelance/ru/projects/technical_writing", component: path.resolve(`src/pages/freelance-subpages/technical_writing_ru.js`)});
createPage({path: "/freelance/projects/post_production", component: path.resolve(`src/pages/freelance-subpages/post_production.js`)});
createPage({path: "/freelance/ru/projects/post_production", component: path.resolve(`src/pages/freelance-subpages/post_production_ru.js`)});
createPage({path: "/freelance/projects/misc", component: path.resolve(`src/pages/freelance-subpages/misc.js`)});
createPage({path: "/freelance/ru/projects/misc", component: path.resolve(`src/pages/freelance-subpages/misc_ru.js`)});
createPage({path: "/cv", component: path.resolve(`src/pages/main/cv.js`)});
createPage({path: "/about", component: path.resolve(`src/pages/main/about.js`)});
createPage({path: "/gallery", component: path.resolve(`src/pages/main/gallery.js`)});
createPage({path: "/stories", component: path.resolve(`src/pages/main/stories.js`)});
createPage({path: "/zettelkasten", component: path.resolve(`src/pages/main/zettelkasten.js`)});
createPage({path: "/articles", component: path.resolve(`src/pages/main/articles.js`)});
createPage({path: "/websites", component: path.resolve(`src/pages/main/websites.js`)});
createPage({path: "/videos", component: path.resolve(`src/pages/main/videos.js`)});
createPage({path: "/feed", component: path.resolve(`src/pages/main/feed.js`)});
createPage({path: "/playlists", component: path.resolve(`src/pages/main/playlists.js`)});
createPage({path: "/albums", component: path.resolve(`src/pages/main/albums.js`)});
createPage({path: "/films", component: path.resolve(`src/pages/main/films.js`)});
createPage({path: "/bookshelf", component: path.resolve(`src/pages/main/bookshelf.js`)});
createPage({path: "/hall_of_fame", component: path.resolve(`src/pages/main/hall_of_fame.js`)});
createPage({path: "/gear", component: path.resolve(`src/pages/main/gear.js`)});
createPage({path: "/calisthenics", component: path.resolve(`src/pages/main/calisthenics.js`)});
createPage({path: "/friends", component: path.resolve(`src/pages/main/friends.js`)});
createPage({path: "/habits", component: path.resolve(`src/pages/main/habits.js`)});
createPage({path: "/faq", component: path.resolve(`src/pages/main/faq.js`)});
createPage({path: "/information_for_business_inquiries", component: path.resolve(`src/pages/extras/information_for_business_inquiries.js`)});
createPage({path: "/donate", component: path.resolve(`src/pages/extras/donate.js`)});
createPage({path: "/contact", component: path.resolve(`src/pages/extras/contact.js`)});
createPage({path: "/all", component: path.resolve(`src/pages/extras/all_posts.js`)});
createPage({path: "/dev", component: path.resolve(`src/pages/extras/dev.js`)});
createPage({path: "/dev/null", component: path.resolve(`src/pages/extras/dev_null.js`)});
createPage({path: "/dev/magnitoshakhtinsk", component: path.resolve(`src/pages/extras/dev_magnitoshakhtinsk.js`)});
createPage({path: "/null", component: path.resolve(`src/pages/extras/dev_null.js`)});
createPage({path: "/avrtt", component: path.resolve(`src/pages/extras/avrtt.js`)});
};