gatsby-blog/gatsby-config.js

148 lines
4.6 KiB
JavaScript
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
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`,
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`,
},
],
// 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: {
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),
}