forked from icatproject/icatproject.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gatsby-config.js
90 lines (89 loc) · 2.73 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
const remark = require('remark');
const visit = require('unist-util-visit');
module.exports = {
siteMetadata: {
title: `ICAT Project`,
description: `The ICAT software takes data from large scientific facilities (e.g particle accelerators) - and catalogues and indexes it so scientists can find the data they need.`,
siteUrl: `https://icatproject.github.io`,
},
plugins: [
{
resolve: `gatsby-plugin-layout`,
options: {
component: require.resolve(`./src/components/layout.jsx`),
},
},
`gatsby-plugin-catch-links`,
`gatsby-plugin-emotion`,
`gatsby-plugin-react-helmet`,
`gatsby-plugin-sharp`,
{
resolve: `gatsby-source-filesystem`,
options: {
name: `content`,
path: `${__dirname}/content/`,
},
},
{
resolve: `gatsby-transformer-remark`,
options: {
plugins: [
{
resolve: `gatsby-remark-copy-linked-files`,
},
{
resolve: `gatsby-remark-relative-images`,
},
{
resolve: `gatsby-remark-images`,
options: {
// It's important to specify the maxWidth (in pixels) of
// the content container as this plugin uses this as the
// base for generating different widths of each image.
maxWidth: 700,
showCaptions: true,
wrapperStyle: 'margin-left: 0 !important; margin-right: 0 !important;',
},
},
],
},
},
{
resolve: `gatsby-plugin-manifest`,
options: {
name: `ICAT project website`,
short_name: `ICAT project`,
start_url: `/`,
background_color: `#ffffff`,
theme_color: `#000000`,
display: `browser`,
},
},
`gatsby-plugin-sitemap`,
{
resolve: `@gatsby-contrib/gatsby-plugin-elasticlunr-search`,
options: {
// Fields to index
fields: [`title`, `content`],
// How to resolve each field`s value for a supported node type
resolvers: {
// For any node of type MarkdownRemark, list how to resolve the fields` values
MarkdownRemark: {
title: (node) => node.frontmatter.title,
content: (node) => node.rawMarkdownBody,
slug: (node) => node.fields.slug,
excerpt: (node) => {
const excerptLength = 55;
let excerpt = '';
const tree = remark().parse(node.rawMarkdownBody);
visit(tree, 'text', (treeNode) => {
excerpt += `${treeNode.value} `;
});
return `${excerpt.split(' ').slice(0, excerptLength).join(' ')} ...`;
},
},
},
},
},
],
};