-
Notifications
You must be signed in to change notification settings - Fork 0
/
gatsby-config.js
executable file
·119 lines (114 loc) · 3.02 KB
/
gatsby-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
const path = require(`path`);
const config = require(`./src/utils/siteConfig`);
const generateRSSFeed = require(`./src/utils/rss/generate-feed`);
let ghostConfig;
try {
ghostConfig = require(`./.ghost`);
} catch (e) {
ghostConfig = {
production: {
apiUrl: process.env.GHOST_API_URL,
contentApiKey: process.env.GHOST_CONTENT_API_KEY,
},
};
} finally {
const { apiUrl, contentApiKey } =
process.env.NODE_ENV === `development` ? ghostConfig.development : ghostConfig.production;
if (!apiUrl || !contentApiKey || contentApiKey.match(/<key>/)) {
throw new Error(`GHOST_API_URL and GHOST_CONTENT_API_KEY are required to build. Check the README.`); // eslint-disable-line
}
}
/**
* This is the place where you can tell Gatsby which plugins to use
* and set them up the way you want.
*
* Further info 👉🏼 https://www.gatsbyjs.org/docs/gatsby-config/
*
*/
module.exports = {
siteMetadata: {
siteUrl: config.siteUrl,
},
plugins: [
/**
* Content Plugins
*/
{
resolve: `gatsby-source-filesystem`,
options: {
path: path.join(__dirname, `src`, `pages`),
name: `pages`,
},
},
// Setup for optimised images.
// See https://www.gatsbyjs.org/packages/gatsby-image/
{
resolve: `gatsby-source-filesystem`,
options: {
path: path.join(__dirname, `src`, `images`),
name: `images`,
},
},
`gatsby-plugin-sharp`,
`gatsby-transformer-sharp`,
{
resolve: `gatsby-source-ghost`,
options: process.env.NODE_ENV === `development` ? ghostConfig.development : ghostConfig.production,
},
/**
* Utility Plugins
*/
{
resolve: `gatsby-plugin-feed`,
options: {
query: `
{
allGhostSettings {
edges {
node {
title
description
}
}
}
}
`,
feeds: [generateRSSFeed(config)],
},
},
{
resolve: `gatsby-plugin-advanced-sitemap`,
options: {
query: `
{
allGhostPost {
edges {
node {
id
slug
updated_at
created_at
feature_image
}
}
}
}`,
mapping: {
allGhostPost: {
sitemap: `posts`,
},
},
exclude: [`/dev-404-page`, `/404`, `/404.html`, `/offline-plugin-app-shell-fallback`],
createLinkInHead: true,
},
},
`gatsby-plugin-react-helmet`,
`gatsby-plugin-offline`,
{
resolve: `gatsby-plugin-google-analytics`,
options: {
trackingId: 'UA-141533763-2',
},
},
],
};