This repository has been archived by the owner on Feb 25, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgridsome.config.js
121 lines (117 loc) · 2.85 KB
/
gridsome.config.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
// This is where project configuration and plugin options are located.
// Learn more: https://gridsome.org/docs/config
// Changes here require a server restart.
// To restart press CTRL + C in terminal and run `gridsome develop`
const path = require('path')
function addStyleResource (rule) {
rule.use('style-resource')
.loader('style-resources-loader')
.options({
patterns: [
path.resolve(__dirname, './src/assets/scss/_vars.scss'),
],
})
}
module.exports = {
siteName: 'Joshua Rainbow',
siteDescription: 'Photography and Programming Projects by Joshua Rainbow O\'Sullivan',
plugins: [
{
use: '@gridsome/source-filesystem',
options: {
path: '*.json',
baseDir: './content/photography/',
typeName: 'Photography',
route: '/photography/:category/:title',
refs: {
category: {
typeName: "Categories",
route: "/photography/:title",
create: true,
}
}
}
},
{
use: '@gridsome/source-filesystem',
options: {
path: '*.md',
baseDir: './content/programming/',
typeName: 'Programming'
}
},
{
use: '@gridsome/source-filesystem',
options: {
path: 'about.json',
baseDir: './content/root-pages/',
typeName: 'About'
}
},
{
use: '@gridsome/source-filesystem',
options: {
path: 'frontpage.json',
baseDir: './content/root-pages/',
typeName: 'FrontPage'
}
},
{
use: '@gridsome/plugin-google-analytics',
options: {
id: 'UA-146872812-1'
}
},
{
use: '@gridsome/plugin-sitemap',
options: {
cacheTime: 600000, // default
exclude: [],
config: {
'/': {
changefreq: 'monthly',
priority: 1
},
'/about': {
changefreq: 'monthly',
priority: 0.9
},
'/photography/*': {
changefreq: 'monthly',
priority: 0.8
},
'/photography/*/*': {
changefreq: 'monthly',
priority: 0.7
},
'/programming': {
changefreq: 'monthly',
priority: 0.6
}
}
}
},
{
use: 'gridsome-plugin-ogp'
}
],
transformers: {
remark: {
imageQuality: 90,
}
},
siteUrl: 'https://joshuarainbow.co.uk/',
pathPrefix: '/',
chainWebpack (config) {
// Load variables for all vue-files
const types = ['vue-modules', 'vue', 'normal-modules', 'normal']
types.forEach(type => {
addStyleResource(config.module.rule('scss').oneOf(type))
})
//Configure svg loading
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule.use('vue-svg-loader')
.loader('vue-svg-loader')
}
}