rickvanlieshout.com/gatsby-config.ts

184 lines
4.7 KiB
TypeScript
Raw Normal View History

import path from "path";
2018-11-09 18:08:48 +01:00
import config from "./content/config.json";
import * as types from "./internal/gatsby/types";
export default {
pathPrefix: config.pathPrefix,
trailingSlash: "always",
2017-08-20 13:43:49 +02:00
siteMetadata: {
siteUrl: config.url,
url: config.url,
menu: config.menu,
legalMenu: config.legalMenu,
title: config.title,
author: config.author,
subtitle: config.subtitle,
copyright: config.copyright,
postsLimit: config.postsLimit,
disqusShortname: config.disqusShortname,
2017-08-20 13:43:49 +02:00
},
plugins: [
{
resolve: "gatsby-source-filesystem",
2019-07-19 19:42:20 +02:00
options: {
name: "content",
path: path.resolve("content"),
},
2018-11-09 20:20:44 +01:00
},
2017-08-20 13:43:49 +02:00
{
resolve: "gatsby-plugin-feed",
2017-08-20 13:43:49 +02:00
options: {
query: `
{
site {
siteMetadata {
url
2017-08-20 13:43:49 +02:00
}
}
}
`,
feeds: [
{
serialize: ({
query: { site, allMarkdownRemark },
}: {
query: {
site: {
siteMetadata: {
url: string;
};
};
allMarkdownRemark: {
edges: Array<types.Edge>;
};
};
}) =>
allMarkdownRemark.edges.map(({ node }) => ({
...node.frontmatter,
date: node?.frontmatter?.date,
description: node?.frontmatter?.description,
url: site.siteMetadata.url + node?.fields?.slug,
guid: site.siteMetadata.url + node?.fields?.slug,
custom_elements: [{ "content:encoded": node.html }],
})),
query: `{
allMarkdownRemark(
limit: 1000
sort: {frontmatter: {date: DESC}}
filter: {frontmatter: {template: {eq: "post"}, draft: {ne: true}}}
) {
edges {
node {
html
fields {
slug
}
frontmatter {
date
title
description
2017-08-20 13:43:49 +02:00
}
}
}
}
}`,
output: "/rss.xml",
title: config.title,
},
],
},
2017-08-20 13:43:49 +02:00
},
{
resolve: "gatsby-transformer-remark",
2017-08-20 13:43:49 +02:00
options: {
plugins: [
{
resolve: "gatsby-remark-images",
options: {
maxWidth: 960,
withWebp: true,
linkImagesToOriginal: false,
showCaptions: ["title"],
},
2017-08-20 13:43:49 +02:00
},
{
resolve: "gatsby-remark-responsive-iframe",
options: { wrapperStyle: "margin-bottom: 1.0725rem" },
2017-08-20 13:43:49 +02:00
},
{
resolve: "gatsby-remark-images-medium-zoom",
options: { background: "rgb(0, 0, 0,70%)" },
},
"gatsby-remark-autolink-headers",
"gatsby-remark-prismjs",
"gatsby-remark-copy-linked-files",
"gatsby-remark-smartypants",
"gatsby-remark-external-links",
],
},
2018-01-21 16:54:33 +01:00
},
"gatsby-transformer-sharp",
"gatsby-plugin-sharp",
{
resolve: "gatsby-plugin-google-gtag",
options: {
trackingIds: [config.googleAnalyticsId],
pluginConfig: {
head: true,
},
},
},
2017-08-20 13:43:49 +02:00
{
resolve: "gatsby-plugin-sitemap",
2017-08-20 13:43:49 +02:00
options: {
query: `
2018-11-09 18:08:48 +01:00
{
site {
siteMetadata {
2019-05-10 02:52:30 +02:00
siteUrl: url
2017-08-20 13:43:49 +02:00
}
2018-11-09 18:08:48 +01:00
}
allSitePage(
filter: {
path: { regex: "/^(?!/404/|/404.html|/dev-404-page/)/" }
}
) {
nodes {
path
2017-08-20 13:43:49 +02:00
}
2018-11-09 18:08:48 +01:00
}
}
`,
},
2017-08-20 13:43:49 +02:00
},
{
resolve: "gatsby-plugin-manifest",
options: {
name: config.title,
short_name: config.title,
theme_color: "hsl(31, 92%, 62%)",
background_color: "hsl(0, 0%, 100%)",
2022-09-04 23:58:49 +02:00
icon: "content/me.png",
display: "standalone",
start_url: "/",
},
},
{
resolve: "gatsby-plugin-react-helmet-canonical-urls",
options: {
siteUrl: config.url,
stripQueryString: true,
},
},
// remove the old service worker if it is available.
"gatsby-plugin-remove-serviceworker",
"gatsby-plugin-image",
"gatsby-plugin-catch-links",
"gatsby-plugin-react-helmet",
"gatsby-plugin-optimize-svgs",
"gatsby-plugin-sass",
"gatsby-plugin-robots-txt",
],
2017-08-20 13:43:49 +02:00
};