2022-07-15 21:19:36 +08:00
|
|
|
|
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`,
|
2022-07-15 21:19:36 +08:00
|
|
|
|
siteImage: `/banner.jpg`,
|
2022-07-16 14:29:06 +08:00
|
|
|
|
author: `Ivan Li`,
|
2022-07-15 21:19:36 +08:00
|
|
|
|
},
|
|
|
|
|
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`,
|
|
|
|
|
// },
|
|
|
|
|
// ],
|
2022-07-15 21:19:36 +08:00
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
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、硬件。`,
|
2022-07-15 21:19:36 +08:00
|
|
|
|
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),
|
|
|
|
|
}
|