gatsby-blog/gatsby-config.js

148 lines
4.6 KiB
JavaScript
Raw Normal View History

require(`dotenv`).config()
const shouldAnalyseBundle = process.env.ANALYSE_BUNDLE
module.exports = {
siteMetadata: {
// You can overwrite values here that are used for the SEO component
// You can also add new values here to query them like usual
// See all options: https://github.com/LekoArts/gatsby-themes/blob/main/themes/gatsby-theme-minimal-blog/gatsby-config.js
2022-07-16 14:29:06 +08:00
siteTitle: `Ivan's Blog`,
siteTitleAlt: `Ivan Li 的个人博客`,
siteHeadline: `Ivan Li 的个人博客`,
siteUrl: `https://ivanli.cc/`,
siteDescription: `一个 Web 全栈开发者、嵌入式开发爱好者,与你分享我的工作和生活。专注 React、Node.js、Rust热爱 Self-Hosted、IoT、硬件。`,
siteLanguage: `zh`,
siteImage: `/banner.jpg`,
2022-07-16 14:29:06 +08:00
author: `Ivan Li`,
},
plugins: [
{
resolve: `@lekoarts/gatsby-theme-minimal-blog`,
// See the theme's README for all available options
options: {
navigation: [
{
title: `Blog`,
slug: `/blog`,
},
{
title: `About`,
slug: `/about`,
},
],
2022-07-16 14:29:06 +08:00
// externalLinks: [
// {
// name: `Twitter`,
// url: `https://twitter.com/lekoarts_de`,
// },
// {
// name: `Homepage`,
// url: `https://www.lekoarts.de?utm_source=minimal-blog&utm_medium=Starter`,
// },
// ],
},
},
{
resolve: `gatsby-omni-font-loader`,
options: {
enableListener: true,
preconnect: [`https://fonts.gstatic.com`],
// If you plan on changing the font you'll also need to adjust the Theme UI config to edit the CSS
// See: https://github.com/LekoArts/gatsby-themes/tree/main/examples/minimal-blog#changing-your-fonts
web: [
{
name: `IBM Plex Sans`,
file: `https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap`,
},
],
},
},
`gatsby-plugin-sitemap`,
{
resolve: `gatsby-plugin-manifest`,
options: {
2022-07-16 14:29:06 +08:00
name: `Ivan Li 的个人博客`,
short_name: `Ivan's Blog`,
description: `一个 Web 全栈开发者、嵌入式开发爱好者,与你分享我的工作和生活。专注 React、Node.js、Rust热爱 Self-Hosted、IoT、硬件。`,
start_url: `/`,
background_color: `#fff`,
// This will impact how browsers show your PWA/website
// https://css-tricks.com/meta-theme-color-and-trickery/
// theme_color: `#6B46C1`,
display: `standalone`,
icons: [
{
src: `/android-chrome-192x192.png`,
sizes: `192x192`,
type: `image/png`,
},
{
src: `/android-chrome-512x512.png`,
sizes: `512x512`,
type: `image/png`,
},
],
},
},
{
resolve: `gatsby-plugin-feed`,
options: {
query: `
{
site {
siteMetadata {
title: siteTitle
description: siteDescription
siteUrl
site_url: siteUrl
}
}
}
`,
feeds: [
{
serialize: ({ query: { site, allPost } }) =>
allPost.nodes.map((post) => {
const url = site.siteMetadata.siteUrl + post.slug
const content = `<p>${post.excerpt}</p><div style="margin-top: 50px; font-style: italic;"><strong><a href="${url}">Keep reading</a>.</strong></div><br /> <br />`
return {
title: post.title,
date: post.date,
excerpt: post.excerpt,
url,
guid: url,
custom_elements: [{ "content:encoded": content }],
}
}),
query: `
{
allPost(sort: { fields: date, order: DESC }) {
nodes {
title
date(formatString: "MMMM D, YYYY")
excerpt
slug
}
}
}
`,
output: `rss.xml`,
title: `Minimal Blog - @lekoarts/gatsby-theme-minimal-blog`,
},
],
},
},
`gatsby-plugin-gatsby-cloud`,
shouldAnalyseBundle && {
resolve: `gatsby-plugin-webpack-bundle-analyser-v2`,
options: {
analyzerMode: `static`,
reportFilename: `_bundle.html`,
openAnalyzer: false,
},
},
].filter(Boolean),
}