.*?<\/div><\/div>
.*?<\/div><\/div><\/div><\/div>/g
return content.replace(regexExp, '')
}
}
-export async function generateRss(posts) {
+export async function generateRss(NOTION_CONFIG, posts) {
+ const link = siteConfig('LINK', BLOG.LINK, NOTION_CONFIG)
+ const author = siteConfig('AUTHOR', BLOG.AUTHOR, NOTION_CONFIG)
+ const lang = siteConfig('LANG', BLOG.LANG, NOTION_CONFIG)
+ const subPath = siteConfig('SUB_PATH', BLOG.SUB_PATH, NOTION_CONFIG)
+
const year = new Date().getFullYear()
const feed = new Feed({
title: BLOG.TITLE,
description: BLOG.DESCRIPTION,
- link: `${BLOG.LINK}/${BLOG.SUB_PATH}`,
- language: BLOG.LANG,
- favicon: `${BLOG.LINK}/favicon.png`,
- copyright: `All rights reserved ${year}, ${BLOG.AUTHOR}`,
+ link: `${link}/${subPath}`,
+ language: lang,
+ favicon: `${link}/favicon.png`,
+ copyright: `All rights reserved ${year}, ${author}`,
author: {
- name: BLOG.AUTHOR,
+ name: author,
email: BLOG.CONTACT_EMAIL,
- link: BLOG.LINK
+ link: link
}
})
for (const post of posts) {
feed.addItem({
title: post.title,
- link: `${BLOG.LINK}/${post.slug}`,
+ link: `${link}/${post.slug}`,
description: post.summary,
content: await createFeedContent(post),
date: new Date(post?.publishDay)
diff --git a/pages/[prefix]/[slug]/[...suffix].js b/pages/[prefix]/[slug]/[...suffix].js
index 84591ca5..0d912a0b 100644
--- a/pages/[prefix]/[slug]/[...suffix].js
+++ b/pages/[prefix]/[slug]/[...suffix].js
@@ -82,7 +82,14 @@ export async function getStaticProps({
// 无法获取文章
if (!props?.post) {
props.post = null
- return { props, revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND) }
+ return {
+ props,
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
+ }
}
// 文章内容加载
@@ -116,7 +123,11 @@ export async function getStaticProps({
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/[prefix]/[slug]/index.js b/pages/[prefix]/[slug]/index.js
index 0af41678..88c1fc42 100644
--- a/pages/[prefix]/[slug]/index.js
+++ b/pages/[prefix]/[slug]/index.js
@@ -66,7 +66,14 @@ export async function getStaticProps({ params: { prefix, slug }, locale }) {
// 无法获取文章
if (!props?.post) {
props.post = null
- return { props, revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND) }
+ return {
+ props,
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
+ }
}
// 文章内容加载
@@ -100,7 +107,11 @@ export async function getStaticProps({ params: { prefix, slug }, locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
function checkSlug(row) {
diff --git a/pages/[prefix]/index.js b/pages/[prefix]/index.js
index a0de57bd..408a3cc3 100644
--- a/pages/[prefix]/index.js
+++ b/pages/[prefix]/index.js
@@ -107,7 +107,14 @@ export async function getStaticProps({ params: { prefix }, locale }) {
// 无法获取文章
if (!props?.post) {
props.post = null
- return { props, revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND) }
+ return {
+ props,
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
+ }
}
// 文章内容加载
@@ -142,7 +149,11 @@ export async function getStaticProps({ params: { prefix }, locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/archive/index.js b/pages/archive/index.js
index 43eb7d27..21de9494 100644
--- a/pages/archive/index.js
+++ b/pages/archive/index.js
@@ -61,7 +61,11 @@ export async function getStaticProps({ locale }) {
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/category/[category]/index.js b/pages/category/[category]/index.js
index 3c7caf62..d97266f3 100644
--- a/pages/category/[category]/index.js
+++ b/pages/category/[category]/index.js
@@ -46,7 +46,11 @@ export async function getStaticProps({ params: { category }, locale }) {
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/category/[category]/page/[page].js b/pages/category/[category]/page/[page].js
index 212fa8fa..099ac7a2 100644
--- a/pages/category/[category]/page/[page].js
+++ b/pages/category/[category]/page/[page].js
@@ -12,7 +12,10 @@ import { useRouter } from 'next/router'
export default function Category(props) {
// 根据页面路径加载不同Layout文件
- const Layout = getLayoutByTheme({ theme: siteConfig('THEME'), router: useRouter() })
+ const Layout = getLayoutByTheme({
+ theme: siteConfig('THEME'),
+ router: useRouter()
+ })
return
}
@@ -28,7 +31,10 @@ export async function getStaticProps({ params: { category, page } }) {
// 处理文章页数
props.postCount = props.posts.length
// 处理分页
- props.posts = props.posts.slice(siteConfig('POSTS_PER_PAGE') * (page - 1), siteConfig('POSTS_PER_PAGE') * page)
+ props.posts = props.posts.slice(
+ siteConfig('POSTS_PER_PAGE') * (page - 1),
+ siteConfig('POSTS_PER_PAGE') * page
+ )
delete props.allPages
props.page = page
@@ -37,7 +43,11 @@ export async function getStaticProps({ params: { category, page } }) {
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
@@ -50,7 +60,9 @@ export async function getStaticPaths() {
// 过滤状态类型
const categoryPosts = allPages
?.filter(page => page.type === 'Post' && page.status === 'Published')
- .filter(post => post && post.category && post.category.includes(category.name))
+ .filter(
+ post => post && post.category && post.category.includes(category.name)
+ )
// 处理文章页数
const postCount = categoryPosts.length
const totalPages = Math.ceil(postCount / siteConfig('POSTS_PER_PAGE'))
diff --git a/pages/category/index.js b/pages/category/index.js
index e3af2bda..02ab5fe0 100644
--- a/pages/category/index.js
+++ b/pages/category/index.js
@@ -24,6 +24,10 @@ export async function getStaticProps({ locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/index.js b/pages/index.js
index b6cb5014..dab14663 100644
--- a/pages/index.js
+++ b/pages/index.js
@@ -59,7 +59,7 @@ export async function getStaticProps(req) {
generateRobotsTxt()
// 生成Feed订阅
if (JSON.parse(BLOG.ENABLE_RSS)) {
- generateRss(props?.latestPosts || [])
+ generateRss(props?.NOTION_CONFIG, props?.latestPosts || [])
}
// 生成全文索引 - 仅在 yarn build 时执行 && process.env.npm_lifecycle_event === 'build'
@@ -68,7 +68,11 @@ export async function getStaticProps(req) {
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/page/[page].js b/pages/page/[page].js
index 34ce91c7..2a96d0a1 100644
--- a/pages/page/[page].js
+++ b/pages/page/[page].js
@@ -64,7 +64,11 @@ export async function getStaticProps({ params: { page } }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/search/[keyword]/index.js b/pages/search/[keyword]/index.js
index b1d8f6c2..84282e39 100644
--- a/pages/search/[keyword]/index.js
+++ b/pages/search/[keyword]/index.js
@@ -40,7 +40,11 @@ export async function getStaticProps({ params: { keyword }, locale }) {
props.keyword = keyword
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/search/[keyword]/page/[page].js b/pages/search/[keyword]/page/[page].js
index 2f01ec24..6e51989d 100644
--- a/pages/search/[keyword]/page/[page].js
+++ b/pages/search/[keyword]/page/[page].js
@@ -44,7 +44,11 @@ export async function getStaticProps({ params: { keyword, page }, locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/search/index.js b/pages/search/index.js
index 3b637cd1..e5140c1f 100644
--- a/pages/search/index.js
+++ b/pages/search/index.js
@@ -54,7 +54,11 @@ export async function getStaticProps({ locale }) {
)
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/signin.js b/pages/signin.js
index 42977ffe..1fd5ea15 100644
--- a/pages/signin.js
+++ b/pages/signin.js
@@ -27,7 +27,11 @@ export async function getStaticProps(req) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/signup.js b/pages/signup.js
index 033b7796..d3cd278d 100644
--- a/pages/signup.js
+++ b/pages/signup.js
@@ -27,7 +27,11 @@ export async function getStaticProps(req) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/sitemap.xml.js b/pages/sitemap.xml.js
index 1305818a..48be36de 100644
--- a/pages/sitemap.xml.js
+++ b/pages/sitemap.xml.js
@@ -1,5 +1,6 @@
// pages/sitemap.xml.js
import BLOG from '@/blog.config'
+import { siteConfig } from '@/lib/config'
import { getNotionPageData } from '@/lib/db/getSiteData'
import { extractLangId, extractLangPrefix } from '@/lib/utils/pageId'
import { getServerSideSitemap } from 'next-sitemap'
@@ -12,13 +13,12 @@ export const getServerSideProps = async ctx => {
const id = extractLangId(siteId)
const locale = extractLangPrefix(siteId)
// 第一个id站点默认语言
- const localeFields = generateLocalesSitemap(
- await getNotionPageData({
- pageId: id,
- from: 'sitemap.xml'
- }).allPages,
- locale
- )
+ const siteData = await getNotionPageData({
+ pageId: id,
+ from: 'sitemap.xml'
+ })
+ const link = siteConfig('LINK', BLOG.LINK, siteData.NOTION_CONFIG)
+ const localeFields = generateLocalesSitemap(link, siteData.allPages, locale)
fields = fields.concat(localeFields)
}
@@ -31,43 +31,43 @@ export const getServerSideProps = async ctx => {
return getServerSideSitemap(ctx, fields)
}
-function generateLocalesSitemap(allPages, locale) {
+function generateLocalesSitemap(link, allPages, locale) {
if (locale && locale.length > 0 && locale.indexOf('/') !== 0) {
locale = '/' + locale
}
const defaultFields = [
{
- loc: `${BLOG.LINK}${locale}`,
+ loc: `${link}${locale}`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
},
{
- loc: `${BLOG.LINK}${locale}/archive`,
+ loc: `${link}${locale}/archive`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
},
{
- loc: `${BLOG.LINK}${locale}/category`,
+ loc: `${link}${locale}/category`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
},
{
- loc: `${BLOG.LINK}${locale}/feed`,
+ loc: `${link}${locale}/feed`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
},
{
- loc: `${BLOG.LINK}${locale}/search`,
+ loc: `${link}${locale}/search`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
},
{
- loc: `${BLOG.LINK}${locale}/tag`,
+ loc: `${link}${locale}/tag`,
lastmod: new Date().toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
@@ -81,7 +81,7 @@ function generateLocalesSitemap(allPages, locale) {
? post?.slug?.slice(1)
: post.slug
return {
- loc: `${BLOG.LINK}${locale}/${slugWithoutLeadingSlash}`,
+ loc: `${link}${locale}/${slugWithoutLeadingSlash}`,
lastmod: new Date(post?.publishDay).toISOString().split('T')[0],
changefreq: 'daily',
priority: '0.7'
diff --git a/pages/tag/[tag]/index.js b/pages/tag/[tag]/index.js
index 153cf415..3f03da82 100644
--- a/pages/tag/[tag]/index.js
+++ b/pages/tag/[tag]/index.js
@@ -42,7 +42,11 @@ export async function getStaticProps({ params: { tag }, locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/tag/[tag]/page/[page].js b/pages/tag/[tag]/page/[page].js
index 519f9146..f8bb4b05 100644
--- a/pages/tag/[tag]/page/[page].js
+++ b/pages/tag/[tag]/page/[page].js
@@ -33,7 +33,11 @@ export async function getStaticProps({ params: { tag, page }, locale }) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}
diff --git a/pages/tag/index.js b/pages/tag/index.js
index 24b3b148..8e1384ae 100644
--- a/pages/tag/index.js
+++ b/pages/tag/index.js
@@ -26,7 +26,11 @@ export async function getStaticProps(req) {
delete props.allPages
return {
props,
- revalidate: parseInt(BLOG.NEXT_REVALIDATE_SECOND)
+ revalidate: siteConfig(
+ 'REVALIDATE_SECOND',
+ BLOG.NEXT_REVALIDATE_SECOND,
+ props.NOTION_CONFIG
+ )
}
}