From b550a25960c22be4064000492b75a9454bc191d8 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Wed, 22 Feb 2023 22:49:06 +0800
Subject: [PATCH 01/39] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 46 ++++++++++++++++++++++++++--------------------
1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index 2945b399..dec38c17 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -1,24 +1,24 @@
// 注: process.env.XX是Vercel的环境变量,配置方式见:https://docs.tangly1024.com/zh/features/personality
const BLOG = {
// Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
- NOTION_PAGE_ID: process.env.NOTION_PAGE_ID || '02ab3b8678004aa69e9e415905ef32a5',
+ NOTION_PAGE_ID: process.env.NOTION_PAGE_ID || 'fb7bf0cd0563410e862e5ee67b8a8d33',
PSEUDO_STATIC: false, // 伪静态路径,开启后所有文章URL都以 .html 结尾。
NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新内容缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据;调大该值有助于节省Vercel资源、同时提升访问速率,但也会使文章更新有延迟。
THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example'] @see https://preview.tangly1024.com
THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
LANG: 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
- SINCE: 2021, // e.g if leave this empty, current year will be used.
- APPEARANCE: 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
+ SINCE: 2022, // e.g if leave this empty, current year will be used.
+ APPEARANCE: 'auto', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
- AUTHOR: 'NotionNext', // 您的昵称 例如 tangly1024
+ AUTHOR: 'Vixcity', // 您的昵称 例如 tangly1024
BIO: '一个普通的干饭人🍚', // 作者简介
- LINK: process.env.NEXT_PUBLIC_LINK || 'https://tangly1024.com', // 网站地址
+ LINK: process.env.NEXT_PUBLIC_LINK || 'https://bolg.vixcitycc.top/', // 网站地址
KEYWORDS: 'Notion, 博客', // 网站关键词 英文逗号隔开
// 社交链接,不需要可留空白,例如 CONTACT_WEIBO:''
- CONTACT_EMAIL: '', // 邮箱地址 例如mail@tangly1024.com
+ CONTACT_EMAIL: '2091283625@qq.com', // 邮箱地址 例如mail@tangly1024.com
CONTACT_WEIBO: '', // 你的微博个人主页
CONTACT_TWITTER: '', // 你的twitter个人主页
- CONTACT_GITHUB: '', // 你的github个人主页 例如 https://github.com/tangly1024
+ CONTACT_GITHUB: 'https://github.com/Vixcity', // 你的github个人主页 例如 https://github.com/tangly1024
CONTACT_TELEGRAM: '', // 你的telegram 地址 例如 https://t.me/tangly_1024
CONTACT_LINKEDIN: '', // 你的linkedIn 首页
@@ -72,35 +72,43 @@ const BLOG = {
POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
POST_PREVIEW_LINES: 12, // 预览博客行数
POST_RECOMMEND_COUNT: 6, // 推荐文章数量
- POSTS_PER_PAGE: 12, // post counts per page
- POSTS_SORT_BY: 'notion', // 排序方式 'date'按时间,'notion'由notion控制
+ POSTS_PER_PAGE: 10, // post counts per page
+ POSTS_SORT_BY: 'date', // 排序方式 'date'按时间,'notion'由notion控制
PREVIEW_CATEGORY_COUNT: 16, // 首页最多展示的分类数量,0为不限制
PREVIEW_TAG_COUNT: 16, // 首页最多展示的标签数量,0为不限制
// 鼠标点击烟花特效
- FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || false, // 开关
+ FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || true, // 开关
// 烟花色彩,感谢 https://github.com/Vixcity 提交的色彩
FIREWORKS_COLOR: ['255, 20, 97', '24, 255, 146', '90, 135, 255', '251, 243, 140'],
// 樱花飘落特效
- SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
+ SAKURA: process.env.NEXT_PUBLIC_SAKURA || true, // 开关
// 漂浮线段特效
- NEST: process.env.NEXT_PUBLIC_NEST || false, // 开关
+ NEST: process.env.NEXT_PUBLIC_NEST || true, // 开关
// 动态彩带特效
- FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || false, // 开关
+ FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || true, // 开关
// 静态彩带特效
RIBBON: process.env.NEXT_PUBLIC_RIBBON || false, // 开关
// 星空雨特效 黑夜模式才会生效
- STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || false, // 开关
+ STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || true, // 开关
// 悬浮挂件
WIDGET_PET: process.env.NEXT_PUBLIC_WIDGET_PET || true, // 是否显示宠物挂件
- WIDGET_PET_LINK: 'https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
- WIDGET_PET_SWITCH_THEME: true, // 点击宠物挂件切换博客主题
+ WIDGET_PET_LINK: 'https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
+ // 好看的主题
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-nito@1.0.5/assets/nito.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
+ WIDGET_PET_SWITCH_THEME: false, // 点击宠物挂件切换博客主题
// 音乐播放插件
MUSIC_PLAYER: process.env.NEXT_PUBLIC_MUSIC_PLAYER || false, // 是否使用音乐播放插件
@@ -200,8 +208,6 @@ const BLOG = {
type_notice: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE || 'Notice', // 当type文章类型与此值相同时,为公告。
title: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TITLE || 'title', // 文章标题
status: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS || 'status',
- status_publish: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_PUBLISH || 'Published', // 当status状态值与此相同时为发布,可以为中文
- status_invisible: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_INVISIBLE || 'Invisible', // 当status状态值与此相同时为隐藏发布,可以为中文 , 除此之外其他页面状态不会显示在博客上
summary: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY || 'summary',
slug: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SLUG || 'slug',
category: process.env.NEXT_PUBLIC_NOTION_PROPERTY_CATEGORY || 'category',
@@ -212,9 +218,9 @@ const BLOG = {
// 作废配置
AVATAR: '/avatar.png', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
- TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖
+ TITLE: process.env.NEXT_PUBLIC_TITLE || 'VIXCITY BLOG', // 站点标题 ,被notion中的页面标题覆盖
HOME_BANNER_IMAGE: './bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
- DESCRIPTION: process.env.NEXT_PUBLIC_DESCRIPTION || '这是一个由NotionNext生成的站点', // 站点描述,被notion中的页面描述覆盖
+ DESCRIPTION: process.env.NEXT_PUBLIC_DESCRIPTION || '我的小破博客', // 站点描述,被notion中的页面描述覆盖
// 开发相关
NOTION_ACCESS_TOKEN: process.env.NOTION_ACCESS_TOKEN || '', // Useful if you prefer not to make your database public
From 1481a4a0b2ab9a8bc22054061c2934518a89f2a9 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Wed, 22 Mar 2023 17:04:56 +0800
Subject: [PATCH 02/39] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index f25b3506..50084390 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -10,6 +10,8 @@ const BLOG = {
SINCE: 2022, // e.g if leave this empty, current year will be used.
APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'auto', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
+ CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
+
AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'Vixcity', // 您的昵称 例如 tangly1024
BIO: process.env.NEXT_PUBLIC_BIO || '一个普通的干饭人🍚', // 作者简介
LINK: process.env.NEXT_PUBLIC_LINK || 'https://bolg.vixcitycc.top/', // 网站地址
@@ -65,15 +67,18 @@ const BLOG = {
BACKGROUND_DARK: '#000000', // use hex value, don't forget '#'
SUB_PATH: '', // leave this empty unless you want to deploy in a folder
- POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX || 'article', // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug]
+ POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX || 'article',
+ // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug]
// 如果此项配置为 '' 空, 则文章将没有前缀路径,使用场景: 希望文章前缀路径为 /post 的情况 支持多级
+ // 支援類似 WP 可自訂文章連結格式的功能:https://wordpress.org/documentation/article/customize-permalinks/,目前只先實作 %year%/%month%/%day%
+ // 例:如想連結改成前綴 article + 時間戳記,可變更為: 'article/%year%/%month%/%day%'
POST_LIST_STYLE: process.env.NEXT_PUBLIC_PPOST_LIST_STYLE || 'page', // ['page','scroll] 文章列表样式:页码分页、单页滚动加载
POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
POST_PREVIEW_LINES: 12, // 预览博客行数
POST_RECOMMEND_COUNT: 6, // 推荐文章数量
POSTS_PER_PAGE: 10, // post counts per page
- POSTS_SORT_BY: 'date', // 排序方式 'date'按时间,'notion'由notion控制
+ POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'date', // 排序方式 'date'按时间,'notion'由notion控制
PREVIEW_CATEGORY_COUNT: 16, // 首页最多展示的分类数量,0为不限制
PREVIEW_TAG_COUNT: 16, // 首页最多展示的标签数量,0为不限制
@@ -206,6 +211,8 @@ const BLOG = {
type_post: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_POST || 'Post', // 当type文章类型与此值相同时,为博文。
type_page: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_PAGE || 'Page', // 当type文章类型与此值相同时,为单页。
type_notice: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE || 'Notice', // 当type文章类型与此值相同时,为公告。
+ type_menu: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_MENU || 'Menu', // 当type文章类型与此值相同时,为菜单。
+ type_sub_menu: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_SUB_MENU || 'SubMenu', // 当type文章类型与此值相同时,为子菜单。
title: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TITLE || 'title', // 文章标题
status: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS || 'status',
summary: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY || 'summary',
@@ -216,12 +223,19 @@ const BLOG = {
icon: process.env.NEXT_PUBLIC_NOTION_PROPERTY_ICON || 'icon'
},
+ // RSS
+ ENABLE_RSS: process.env.NEXT_PUBLIC_ENABLE_RSS || true, // 是否开启RSS订阅功能
+
// 作废配置
- AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.png', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
+ AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
TITLE: process.env.NEXT_PUBLIC_TITLE || 'VIXCITY BLOG', // 站点标题 ,被notion中的页面标题覆盖
HOME_BANNER_IMAGE: process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || './bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
DESCRIPTION: process.env.NEXT_PUBLIC_DESCRIPTION || '我的小破博客', // 站点描述,被notion中的页面描述覆盖
+ // 网站图片
+ IMG_URL_TYPE: process.env.NEXT_PUBLIC_IMG_TYPE || 'Notion', // ['Notion','AMAZON'] 站点图片前缀 默认 Notion:(https://notion.so/images/xx) , AMAZON(https://s3.us-west-2.amazonaws.com/xxx)
+ IMG_SHADOW: process.env.NEXT_PUBLIC_IMG_SHADOW || false, // 文章图片是否自动添加阴影
+
// 开发相关
NOTION_ACCESS_TOKEN: process.env.NOTION_ACCESS_TOKEN || '', // Useful if you prefer not to make your database public
DEBUG: process.env.NEXT_PUBLIC_DEBUG || false, // 是否显示调试按钮
From d15c463e90a4ebc3a5ece060fac8e17de32adc97 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Thu, 20 Apr 2023 10:12:45 +0800
Subject: [PATCH 03/39] =?UTF-8?q?=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 55 ++++++++++++++++++++++++++++----------------------
1 file changed, 31 insertions(+), 24 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index 4e642e4d..999ecb77 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -1,28 +1,27 @@
// 注: process.env.XX是Vercel的环境变量,配置方式见:https://docs.tangly1024.com/zh/features/personality
const BLOG = {
// Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
- NOTION_PAGE_ID:
- process.env.NOTION_PAGE_ID || '02ab3b8678004aa69e9e415905ef32a5',
+ NOTION_PAGE_ID:
+ process.env.NOTION_PAGE_ID || 'fb7bf0cd0563410e862e5ee67b8a8d33',
PSEUDO_STATIC: false, // 伪静态路径,开启后所有文章URL都以 .html 结尾。
NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新内容缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据;调大该值有助于节省Vercel资源、同时提升访问速率,但也会使文章更新有延迟。
THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example'] @see https://preview.tangly1024.com
THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
- SINCE: 2021, // e.g if leave this empty, current year will be used.
- APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
+ SINCE: 2022, // e.g if leave this empty, current year will be used.
+ APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'auto', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
-
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
- AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'NotionNext', // 您的昵称 例如 tangly1024
+ AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'Vixcity', // 您的昵称 例如 tangly1024
BIO: process.env.NEXT_PUBLIC_BIO || '一个普通的干饭人🍚', // 作者简介
- LINK: process.env.NEXT_PUBLIC_LINK || 'https://tangly1024.com', // 网站地址
+ LINK: process.env.NEXT_PUBLIC_LINK || 'https://bolg.vixcitycc.top/', // 网站地址
KEYWORDS: process.env.NEXT_PUBLIC_KEYWORD || 'Notion, 博客', // 网站关键词 英文逗号隔开
// 社交链接,不需要可留空白,例如 CONTACT_WEIBO:''
- CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '', // 邮箱地址 例如mail@tangly1024.com
+ CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '2091283625@qq.com', // 邮箱地址 例如mail@tangly1024.com
CONTACT_WEIBO: process.env.NEXT_PUBLIC_CONTACT_WEIBO || '', // 你的微博个人主页
CONTACT_TWITTER: process.env.NEXT_PUBLIC_CONTACT_TWITTER || '', // 你的twitter个人主页
- CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || '', // 你的github个人主页 例如 https://github.com/tangly1024
+ CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || 'https://github.com/Vixcity', // 你的github个人主页 例如 https://github.com/tangly1024
CONTACT_TELEGRAM: process.env.NEXT_PUBLIC_CONTACT_TELEGRAM || '', // 你的telegram 地址 例如 https://t.me/tangly_1024
CONTACT_LINKEDIN: process.env.NEXT_PUBLIC_CONTACT_LINKEDIN || '', // 你的linkedIn 首页
@@ -106,14 +105,14 @@ const BLOG = {
POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
POST_PREVIEW_LINES: 12, // 预览博客行数
POST_RECOMMEND_COUNT: 6, // 推荐文章数量
- POSTS_PER_PAGE: 12, // post counts per page
- POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制
+ POSTS_PER_PAGE: 10, // post counts per page
+ POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'date', // 排序方式 'date'按时间,'notion'由notion控制
PREVIEW_CATEGORY_COUNT: 16, // 首页最多展示的分类数量,0为不限制
PREVIEW_TAG_COUNT: 16, // 首页最多展示的标签数量,0为不限制
// 鼠标点击烟花特效
- FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || false, // 开关
+ FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || true, // 开关
// 烟花色彩,感谢 https://github.com/Vixcity 提交的色彩
FIREWORKS_COLOR: [
'255, 20, 97',
@@ -123,25 +122,33 @@ const BLOG = {
],
// 樱花飘落特效
- SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
+ SAKURA: process.env.NEXT_PUBLIC_SAKURA || true, // 开关
// 漂浮线段特效
- NEST: process.env.NEXT_PUBLIC_NEST || false, // 开关
+ NEST: process.env.NEXT_PUBLIC_NEST || true, // 开关
// 动态彩带特效
- FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || false, // 开关
+ FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || true, // 开关
// 静态彩带特效
RIBBON: process.env.NEXT_PUBLIC_RIBBON || false, // 开关
// 星空雨特效 黑夜模式才会生效
- STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || false, // 开关
+ STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || true, // 开关
// 悬浮挂件
WIDGET_PET: process.env.NEXT_PUBLIC_WIDGET_PET || true, // 是否显示宠物挂件
- WIDGET_PET_LINK:
- process.env.NEXT_PUBLIC_WIDGET_PET_LINK ||
- 'https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
- WIDGET_PET_SWITCH_THEME: true, // 点击宠物挂件切换博客主题
+ WIDGET_PET_LINK:
+ process.env.NEXT_PUBLIC_WIDGET_PET_LINK ||
+ 'https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
+ WIDGET_PET_SWITCH_THEME: false, // 点击宠物挂件切换博客主题
+ // 好看的主题
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-nito@1.0.5/assets/nito.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
+ // https://cdn.jsdelivr.net/npm/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
// 音乐播放插件
MUSIC_PLAYER: process.env.NEXT_PUBLIC_MUSIC_PLAYER || false, // 是否使用音乐播放插件
@@ -304,11 +311,11 @@ const BLOG = {
// 作废配置
AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
- TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖
- HOME_BANNER_IMAGE:
+ TITLE: process.env.NEXT_PUBLIC_TITLE || 'VIXCITY BLOG', // 站点标题 ,被notion中的页面标题覆盖
+ HOME_BANNER_IMAGE:
process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || './bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
- DESCRIPTION:
- process.env.NEXT_PUBLIC_DESCRIPTION || '这是一个由NotionNext生成的站点', // 站点描述,被notion中的页面描述覆盖
+ DESCRIPTION:
+ process.env.NEXT_PUBLIC_DESCRIPTION || '我的小破博客', // 站点描述,被notion中的页面描述覆盖
// 网站图片
IMG_URL_TYPE: process.env.NEXT_PUBLIC_IMG_TYPE || 'Notion', // 此配置已失效,请勿使用;AMAZON方案不再支持,仅支持Notion方案。 ['Notion','AMAZON'] 站点图片前缀 默认 Notion:(https://notion.so/images/xx) , AMAZON(https://s3.us-west-2.amazonaws.com/xxx)
From 6f8bc27b0a35c8d38f3bf318c501b24f5c00192d Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Thu, 4 May 2023 09:30:30 +0800
Subject: [PATCH 04/39] =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=A8=B1=E8=8A=B1?=
=?UTF-8?q?=E7=89=B9=E6=95=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blog.config.js b/blog.config.js
index e02d87ed..a4588eca 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -122,7 +122,7 @@ const BLOG = {
],
// 樱花飘落特效
- SAKURA: process.env.NEXT_PUBLIC_SAKURA || true, // 开关
+ SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
// 漂浮线段特效
NEST: process.env.NEXT_PUBLIC_NEST || true, // 开关
From 668a49415b1b96c9352e882866b86e28420a0d55 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Fri, 28 Jul 2023 15:21:56 +0800
Subject: [PATCH 05/39] =?UTF-8?q?=E5=86=8D=E6=AC=A1=E5=B0=9D=E8=AF=95?=
=?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 113 +++++++++++++++++++++++--------------------------
1 file changed, 53 insertions(+), 60 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index 6df24559..fa142cb1 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -2,29 +2,30 @@
const BLOG = {
// Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
NOTION_PAGE_ID:
- process.env.NOTION_PAGE_ID || 'fb7bf0cd0563410e862e5ee67b8a8d33',
+ process.env.NOTION_PAGE_ID || '02ab3b8678004aa69e9e415905ef32a5',
+ PSEUDO_STATIC: process.env.NEXT_PUBLIC_PSEUDO_STATIC || false, // 伪静态路径,开启后所有文章URL都以 .html 结尾。
NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新内容缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据;调大该值有助于节省Vercel资源、同时提升访问速率,但也会使文章更新有延迟。
- THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example'] @see https://preview.tangly1024.com
+ THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example','matery','gitbook','simple'] @see https://preview.tangly1024.com
THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
-
- SINCE: 2022, // e.g if leave this empty, current year will be used.
- APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'auto', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
+ SINCE: 2021, // e.g if leave this empty, current year will be used.
+ APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
+
// 3.14.1版本后,欢迎语在此配置,英文逗号隔开 , 即可支持多个欢迎语打字效果。
GREETING_WORDS: process.env.NEXT_PUBLIC_GREETING_WORDS || 'Hi,我是一个程序员, Hi,我是一个打工人,Hi,我是一个干饭人,欢迎来到我的博客🎉',
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
- AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'Vixcity', // 您的昵称 例如 tangly1024
+ AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'NotionNext', // 您的昵称 例如 tangly1024
BIO: process.env.NEXT_PUBLIC_BIO || '一个普通的干饭人🍚', // 作者简介
- LINK: process.env.NEXT_PUBLIC_LINK || 'https://bolg.vixcitycc.top/', // 网站地址
+ LINK: process.env.NEXT_PUBLIC_LINK || 'https://tangly1024.com', // 网站地址
KEYWORDS: process.env.NEXT_PUBLIC_KEYWORD || 'Notion, 博客', // 网站关键词 英文逗号隔开
// 社交链接,不需要可留空白,例如 CONTACT_WEIBO:''
- CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '2091283625@qq.com', // 邮箱地址 例如mail@tangly1024.com
+ CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '', // 邮箱地址 例如mail@tangly1024.com
CONTACT_WEIBO: process.env.NEXT_PUBLIC_CONTACT_WEIBO || '', // 你的微博个人主页
CONTACT_TWITTER: process.env.NEXT_PUBLIC_CONTACT_TWITTER || '', // 你的twitter个人主页
- CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || 'https://github.com/Vixcity', // 你的github个人主页 例如 https://github.com/tangly1024
+ CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || '', // 你的github个人主页 例如 https://github.com/tangly1024
CONTACT_TELEGRAM: process.env.NEXT_PUBLIC_CONTACT_TELEGRAM || '', // 你的telegram 地址 例如 https://t.me/tangly_1024
CONTACT_LINKEDIN: process.env.NEXT_PUBLIC_CONTACT_LINKEDIN || '', // 你的linkedIn 首页
CONTACT_INSTAGRAM: process.env.NEXT_PUBLIC_CONTACT_INSTAGRAM || '', // 您的instagram地址
@@ -136,8 +137,8 @@ const BLOG = {
POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
POST_PREVIEW_LINES: 12, // 预览博客行数
POST_RECOMMEND_COUNT: 6, // 推荐文章数量
- POSTS_PER_PAGE: 10, // post counts per page
- POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'date', // 排序方式 'date'按时间,'notion'由notion控制
+ POSTS_PER_PAGE: 12, // post counts per page
+ POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制
ALGOLIA_APP_ID: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || null, // 在这里查看 https://dashboard.algolia.com/account/api-keys/
ALGOLIA_ADMIN_APP_KEY: process.env.ALGOLIA_ADMIN_APP_KEY || null, // 管理后台的KEY,不要暴露在代码中,在这里查看 https://dashboard.algolia.com/account/api-keys/
@@ -152,7 +153,7 @@ const BLOG = {
// ********动态特效相关********
// 鼠标点击烟花特效
- FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || true, // 开关
+ FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || false, // 开关
// 烟花色彩,感谢 https://github.com/Vixcity 提交的色彩
FIREWORKS_COLOR: [
'255, 20, 97',
@@ -164,41 +165,33 @@ const BLOG = {
// 樱花飘落特效
SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
// 漂浮线段特效
- NEST: process.env.NEXT_PUBLIC_NEST || true, // 开关
+ NEST: process.env.NEXT_PUBLIC_NEST || false, // 开关
// 动态彩带特效
- FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || true, // 开关
+ FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || false, // 开关
// 静态彩带特效
RIBBON: process.env.NEXT_PUBLIC_RIBBON || false, // 开关
// 星空雨特效 黑夜模式才会生效
- STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || true, // 开关
+ STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || false, // 开关
// ********挂件组件相关********
// Chatbase
CHATBASE_ID: process.env.NEXT_PUBLIC_CHATBASE_ID || null, // 是否显示chatbase机器人 https://www.chatbase.co/
// 悬浮挂件
WIDGET_PET: process.env.NEXT_PUBLIC_WIDGET_PET || true, // 是否显示宠物挂件
- WIDGET_PET_LINK:
- process.env.NEXT_PUBLIC_WIDGET_PET_LINK ||
- 'https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
- WIDGET_PET_SWITCH_THEME: true, // 点击宠物挂件切换博客主题
- // 好看的主题
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-nito@1.0.5/assets/nito.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
- // https://cdn.jsdelivr.net/npm/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
+ WIDGET_PET_LINK:
+ process.env.NEXT_PUBLIC_WIDGET_PET_LINK ||
+ 'https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
+ WIDGET_PET_SWITCH_THEME: process.env.NEXT_PUBLIC_WIDGET_PET_SWITCH_THEME || true, // 点击宠物挂件切换博客主题
// 音乐播放插件
MUSIC_PLAYER: process.env.NEXT_PUBLIC_MUSIC_PLAYER || false, // 是否使用音乐播放插件
MUSIC_PLAYER_VISIBLE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_VISIBLE || true, // 是否在左下角显示播放和切换,如果使用播放器,打开自动播放再隐藏,就会以类似背景音乐的方式播放,无法取消和暂停
MUSIC_PLAYER_AUTO_PLAY:
- process.env.NEXT_PUBLIC_MUSIC_PLAYER_AUTO_PLAY || true, // 是否自动播放,不过自动播放时常不生效(移动设备不支持自动播放)
+ process.env.NEXT_PUBLIC_MUSIC_PLAYER_AUTO_PLAY || true, // 是否自动播放,不过自动播放时常不生效(移动设备不支持自动播放)
MUSIC_PLAYER_LRC_TYPE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_LRC_TYPE || '0', // 歌词显示类型,可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)(前提是有配置歌词路径,对 meting 无效)
MUSIC_PLAYER_CDN_URL:
- process.env.NEXT_PUBLIC_MUSIC_PLAYER_CDN_URL ||
- 'https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/aplayer/1.10.1/APlayer.min.js',
+ process.env.NEXT_PUBLIC_MUSIC_PLAYER_CDN_URL ||
+ 'https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/aplayer/1.10.1/APlayer.min.js',
MUSIC_PLAYER_ORDER: process.env.NEXT_PUBLIC_MUSIC_PLAYER_ORDER || 'list', // 默认播放方式,顺序 list,随机 random
MUSIC_PLAYER_AUDIO_LIST: [
// 示例音乐列表。除了以下配置外,还可配置歌词,具体配置项看此文档 https://aplayer.js.org/#/zh-Hans/
@@ -207,23 +200,23 @@ const BLOG = {
artist: 'Falcom Sound Team jdk',
url: 'https://music.163.com/song/media/outer/url?id=731419.mp3',
cover:
- 'https://p2.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
+ 'https://p2.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
},
{
name: '王都グランセル',
artist: 'Falcom Sound Team jdk',
url: 'https://music.163.com/song/media/outer/url?id=731355.mp3',
cover:
- 'https://p1.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
+ 'https://p1.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
}
],
MUSIC_PLAYER_METING: process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING || false, // 是否要开启 MetingJS,从平台获取歌单。会覆盖自定义的 MUSIC_PLAYER_AUDIO_LIST,更多配置信息:https://github.com/metowolf/MetingJS
MUSIC_PLAYER_METING_SERVER:
- process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_SERVER || 'netease', // 音乐平台,[netease, tencent, kugou, xiami, baidu]
+ process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_SERVER || 'netease', // 音乐平台,[netease, tencent, kugou, xiami, baidu]
MUSIC_PLAYER_METING_ID:
- process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_ID || '60198', // 对应歌单的 id
+ process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_ID || '60198', // 对应歌单的 id
MUSIC_PLAYER_METING_LRC_TYPE:
- process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_LRC_TYPE || '1', // 可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)
+ process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_LRC_TYPE || '1', // 可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)
// ********挂件组件相关********
// ----> 评论互动 可同时开启多个支持 WALINE VALINE GISCUS CUSDIS UTTERRANCES GITALK
@@ -235,42 +228,42 @@ const BLOG = {
// utterance
COMMENT_UTTERRANCES_REPO:
- process.env.NEXT_PUBLIC_COMMENT_UTTERRANCES_REPO || '', // 你的代码仓库名, 例如我是 'tangly1024/NotionNext'; 更多文档参考 https://utteranc.es/
+ process.env.NEXT_PUBLIC_COMMENT_UTTERRANCES_REPO || '', // 你的代码仓库名, 例如我是 'tangly1024/NotionNext'; 更多文档参考 https://utteranc.es/
// giscus @see https://giscus.app/
COMMENT_GISCUS_REPO: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO || '', // 你的Github仓库名 e.g 'tangly1024/NotionNext'
COMMENT_GISCUS_REPO_ID: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO_ID || '', // 你的Github Repo ID e.g ( 設定完 giscus 即可看到 )
COMMENT_GISCUS_CATEGORY_ID:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_CATEGORY_ID || '', // 你的Github Discussions 內的 Category ID ( 設定完 giscus 即可看到 )
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_CATEGORY_ID || '', // 你的Github Discussions 內的 Category ID ( 設定完 giscus 即可看到 )
COMMENT_GISCUS_MAPPING:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_MAPPING || 'pathname', // 你的Github Discussions 使用哪種方式來標定文章, 預設 'pathname'
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_MAPPING || 'pathname', // 你的Github Discussions 使用哪種方式來標定文章, 預設 'pathname'
COMMENT_GISCUS_REACTIONS_ENABLED:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_REACTIONS_ENABLED || '1', // 你的 Giscus 是否開啟文章表情符號 '1' 開啟 "0" 關閉 預設開啟
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_REACTIONS_ENABLED || '1', // 你的 Giscus 是否開啟文章表情符號 '1' 開啟 "0" 關閉 預設開啟
COMMENT_GISCUS_EMIT_METADATA:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_EMIT_METADATA || '0', // 你的 Giscus 是否提取 Metadata '1' 開啟 '0' 關閉 預設關閉
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_EMIT_METADATA || '0', // 你的 Giscus 是否提取 Metadata '1' 開啟 '0' 關閉 預設關閉
COMMENT_GISCUS_INPUT_POSITION:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_INPUT_POSITION || 'bottom', // 你的 Giscus 發表留言位置 'bottom' 尾部 'top' 頂部, 預設 'bottom'
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_INPUT_POSITION || 'bottom', // 你的 Giscus 發表留言位置 'bottom' 尾部 'top' 頂部, 預設 'bottom'
COMMENT_GISCUS_LANG: process.env.NEXT_PUBLIC_COMMENT_GISCUS_LANG || 'zh-CN', // 你的 Giscus 語言 e.g 'en', 'zh-TW', 'zh-CN', 預設 'en'
COMMENT_GISCUS_LOADING:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_LOADING || 'lazy', // 你的 Giscus 載入是否漸進式載入, 預設 'lazy'
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_LOADING || 'lazy', // 你的 Giscus 載入是否漸進式載入, 預設 'lazy'
COMMENT_GISCUS_CROSSORIGIN:
- process.env.NEXT_PUBLIC_COMMENT_GISCUS_CROSSORIGIN || 'anonymous', // 你的 Giscus 可以跨網域, 預設 'anonymous'
+ process.env.NEXT_PUBLIC_COMMENT_GISCUS_CROSSORIGIN || 'anonymous', // 你的 Giscus 可以跨網域, 預設 'anonymous'
COMMENT_CUSDIS_APP_ID: process.env.NEXT_PUBLIC_COMMENT_CUSDIS_APP_ID || '', // data-app-id 36位 see https://cusdis.com/
COMMENT_CUSDIS_HOST:
- process.env.NEXT_PUBLIC_COMMENT_CUSDIS_HOST || 'https://cusdis.com', // data-host, change this if you're using self-hosted version
+ process.env.NEXT_PUBLIC_COMMENT_CUSDIS_HOST || 'https://cusdis.com', // data-host, change this if you're using self-hosted version
COMMENT_CUSDIS_SCRIPT_SRC:
- process.env.NEXT_PUBLIC_COMMENT_CUSDIS_SCRIPT_SRC ||
- 'https://cusdis.com/js/cusdis.es.js', // change this if you're using self-hosted version
+ process.env.NEXT_PUBLIC_COMMENT_CUSDIS_SCRIPT_SRC ||
+ 'https://cusdis.com/js/cusdis.es.js', // change this if you're using self-hosted version
// gitalk评论插件 更多参考 https://gitalk.github.io/
COMMENT_GITALK_REPO: process.env.NEXT_PUBLIC_COMMENT_GITALK_REPO || '', // 你的Github仓库名,例如 'NotionNext'
COMMENT_GITALK_OWNER: process.env.NEXT_PUBLIC_COMMENT_GITALK_OWNER || '', // 你的用户名 e.g tangly1024
COMMENT_GITALK_ADMIN: process.env.NEXT_PUBLIC_COMMENT_GITALK_ADMIN || '', // 管理员用户名、一般是自己 e.g 'tangly1024'
COMMENT_GITALK_CLIENT_ID:
- process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_ID || '', // e.g 20位ID , 在gitalk后台获取
+ process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_ID || '', // e.g 20位ID , 在gitalk后台获取
COMMENT_GITALK_CLIENT_SECRET:
- process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_SECRET || '', // e.g 40位ID, 在gitalk后台获取
+ process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_SECRET || '', // e.g 40位ID, 在gitalk后台获取
COMMENT_GITALK_DISTRACTION_FREE_MODE: false, // 类似facebook的无干扰模式
COMMENT_GITALK_JS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_JS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', // gitalk客户端 js cdn
COMMENT_GITALK_CSS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_CSS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css', // gitalk客户端 css cdn
@@ -284,7 +277,7 @@ const BLOG = {
COMMENT_VALINE_APP_KEY: process.env.NEXT_PUBLIC_VALINE_KEY || '',
COMMENT_VALINE_SERVER_URLS: process.env.NEXT_PUBLIC_VALINE_SERVER_URLS || '', // 该配置适用于国内自定义域名用户, 海外版本会自动检测(无需手动填写) @see https://valine.js.org/configuration.html#serverURLs
COMMENT_VALINE_PLACEHOLDER:
- process.env.NEXT_PUBLIC_VALINE_PLACEHOLDER || '抢个沙发吧~', // 可以搭配后台管理评论 https://github.com/DesertsP/Valine-Admin 便于查看评论,以及邮件通知,垃圾评论过滤等功能
+ process.env.NEXT_PUBLIC_VALINE_PLACEHOLDER || '抢个沙发吧~', // 可以搭配后台管理评论 https://github.com/DesertsP/Valine-Admin 便于查看评论,以及邮件通知,垃圾评论过滤等功能
COMMENT_WALINE_SERVER_URL: process.env.NEXT_PUBLIC_WALINE_SERVER_URL || '', // 请配置完整的Waline评论地址 例如 hhttps://preview-waline.tangly1024.com @see https://waline.js.org/guide/get-started.html
COMMENT_WALINE_RECENT: process.env.NEXT_PUBLIC_WALINE_RECENT || false, // 最新评论
@@ -314,14 +307,14 @@ const BLOG = {
ANALYTICS_GOOGLE_ID: process.env.NEXT_PUBLIC_ANALYTICS_GOOGLE_ID || '', // 谷歌Analytics的id e.g: G-XXXXXXXXXX
ANALYTICS_ACKEE_TRACKER:
- process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_TRACKER || '', // e.g 'https://ackee.tangly1024.net/tracker.js'
+ process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_TRACKER || '', // e.g 'https://ackee.tangly1024.net/tracker.js'
ANALYTICS_ACKEE_DATA_SERVER:
- process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DATA_SERVER || '', // e.g https://ackee.tangly1024.net , don't end with a slash
+ process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DATA_SERVER || '', // e.g https://ackee.tangly1024.net , don't end with a slash
ANALYTICS_ACKEE_DOMAIN_ID:
- process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DOMAIN_ID || '', // e.g '0e2257a8-54d4-4847-91a1-0311ea48cc7b'
+ process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DOMAIN_ID || '', // e.g '0e2257a8-54d4-4847-91a1-0311ea48cc7b'
SEO_GOOGLE_SITE_VERIFICATION:
- process.env.NEXT_PUBLIC_SEO_GOOGLE_SITE_VERIFICATION || '', // Remove the value or replace it with your own google site verification code
+ process.env.NEXT_PUBLIC_SEO_GOOGLE_SITE_VERIFICATION || '', // Remove the value or replace it with your own google site verification code
SEO_BAIDU_SITE_VERIFICATION:
process.env.NEXT_PUBLIC_SEO_BAIDU_SITE_VERIFICATION || '', // Remove the value or replace it with your own google site verification code
@@ -343,16 +336,16 @@ const BLOG = {
type_post: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_POST || 'Post', // 当type文章类型与此值相同时,为博文。
type_page: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_PAGE || 'Page', // 当type文章类型与此值相同时,为单页。
type_notice:
- process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE || 'Notice', // 当type文章类型与此值相同时,为公告。
+ process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE || 'Notice', // 当type文章类型与此值相同时,为公告。
type_menu: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_MENU || 'Menu', // 当type文章类型与此值相同时,为菜单。
type_sub_menu:
- process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_SUB_MENU || 'SubMenu', // 当type文章类型与此值相同时,为子菜单。
+ process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_SUB_MENU || 'SubMenu', // 当type文章类型与此值相同时,为子菜单。
title: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TITLE || 'title', // 文章标题
status: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS || 'status',
status_publish:
- process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_PUBLISH || 'Published', // 当status状态值与此相同时为发布,可以为中文
+ process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_PUBLISH || 'Published', // 当status状态值与此相同时为发布,可以为中文
status_invisible:
- process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_INVISIBLE || 'Invisible', // 当status状态值与此相同时为隐藏发布,可以为中文 , 除此之外其他页面状态不会显示在博客上
+ process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_INVISIBLE || 'Invisible', // 当status状态值与此相同时为隐藏发布,可以为中文 , 除此之外其他页面状态不会显示在博客上
summary: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY || 'summary',
slug: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SLUG || 'slug',
category: process.env.NEXT_PUBLIC_NOTION_PROPERTY_CATEGORY || 'category',
@@ -368,11 +361,11 @@ const BLOG = {
// 作废配置
AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
- TITLE: process.env.NEXT_PUBLIC_TITLE || 'VIXCITY BLOG', // 站点标题 ,被notion中的页面标题覆盖
+ TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖;此处请勿留空白,否则服务器无法编译
HOME_BANNER_IMAGE:
- process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || './bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
+ process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || '/bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
DESCRIPTION:
- process.env.NEXT_PUBLIC_DESCRIPTION || '我的小破博客', // 站点描述,被notion中的页面描述覆盖
+ process.env.NEXT_PUBLIC_DESCRIPTION || '这是一个由NotionNext生成的站点', // 站点描述,被notion中的页面描述覆盖
// 网站图片
IMG_LAZY_LOAD_PLACEHOLDER: process.env.NEXT_PUBLIC_IMG_LAZY_LOAD_PLACEHOLDER || 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', // 懒加载占位图片地址,支持base64或url
From 3caab3192ad1bba31d9a94b6933b5c725ab7a7ab Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Fri, 28 Jul 2023 15:30:33 +0800
Subject: [PATCH 06/39] =?UTF-8?q?=E5=85=B3=E9=97=AD=20=E5=BC=80=E5=A7=8B?=
=?UTF-8?q?=E9=98=85=E8=AF=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 1 +
themes/hexo/components/Hero.js | 2 +-
themes/matery/components/Hero.js | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index fa142cb1..a1f3d83f 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -91,6 +91,7 @@ const BLOG = {
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
LAYOUT_SIDEBAR_REVERSE: false,
+ SHOW_START_READING: true, // 是否展示开始阅读按钮
// 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
diff --git a/themes/hexo/components/Hero.js b/themes/hexo/components/Hero.js
index c07a401e..d490608b 100644
--- a/themes/hexo/components/Hero.js
+++ b/themes/hexo/components/Hero.js
@@ -68,7 +68,7 @@ const Hero = props => {
{/* 滚动按钮 */}
-
{locale.COMMON.START_READING}
+
{CONFIG.HOME_NAV_BACKGROUND_IMG_FIXED && locale.COMMON.START_READING}
diff --git a/themes/matery/components/Hero.js b/themes/matery/components/Hero.js
index 6c94cb1c..7f0d6467 100644
--- a/themes/matery/components/Hero.js
+++ b/themes/matery/components/Hero.js
@@ -61,7 +61,7 @@ const Hero = props => {
{/* 滚动按钮 */}
{ window.scrollTo({ top: wrapperTop, behavior: 'smooth' }) }}
className="mt-12 border cursor-pointer w-40 text-center pt-4 pb-3 text-md text-white hover:bg-orange-600 duration-300 rounded-3xl z-40">
- {locale.COMMON.START_READING}
+ {CONFIG.HOME_NAV_BACKGROUND_IMG_FIXED && locale.COMMON.START_READING}
From 20719d8703e70efb62b4ec426fe8071fd8e32b27 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Fri, 28 Jul 2023 15:36:27 +0800
Subject: [PATCH 07/39] =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=BC=80=E5=A7=8B?=
=?UTF-8?q?=E9=98=85=E8=AF=BB=E6=96=87=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 3 ++-
themes/hexo/components/Hero.js | 2 +-
themes/matery/components/Hero.js | 2 +-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index a1f3d83f..b6868841 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -91,7 +91,8 @@ const BLOG = {
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
LAYOUT_SIDEBAR_REVERSE: false,
- SHOW_START_READING: true, // 是否展示开始阅读按钮
+ // 是否展示开始阅读按钮
+ SHOW_START_READING: false,
// 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
diff --git a/themes/hexo/components/Hero.js b/themes/hexo/components/Hero.js
index d490608b..ad28362f 100644
--- a/themes/hexo/components/Hero.js
+++ b/themes/hexo/components/Hero.js
@@ -68,7 +68,7 @@ const Hero = props => {
{/* 滚动按钮 */}
-
{CONFIG.HOME_NAV_BACKGROUND_IMG_FIXED && locale.COMMON.START_READING}
+
{CONFIG.SHOW_START_READING && locale.COMMON.START_READING}
diff --git a/themes/matery/components/Hero.js b/themes/matery/components/Hero.js
index 7f0d6467..a7157b68 100644
--- a/themes/matery/components/Hero.js
+++ b/themes/matery/components/Hero.js
@@ -61,7 +61,7 @@ const Hero = props => {
{/* 滚动按钮 */}
{ window.scrollTo({ top: wrapperTop, behavior: 'smooth' }) }}
className="mt-12 border cursor-pointer w-40 text-center pt-4 pb-3 text-md text-white hover:bg-orange-600 duration-300 rounded-3xl z-40">
- {CONFIG.HOME_NAV_BACKGROUND_IMG_FIXED && locale.COMMON.START_READING}
+ {CONFIG.SHOW_START_READING && locale.COMMON.START_READING}
From 530eb6eb0caf30129087623b4a7b9fb3971e1c82 Mon Sep 17 00:00:00 2001
From: Vixcity <2091283625@qq.com>
Date: Fri, 28 Jul 2023 15:51:21 +0800
Subject: [PATCH 08/39] .
---
blog.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blog.config.js b/blog.config.js
index 11263e65..6795276d 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -92,7 +92,7 @@ const BLOG = {
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
LAYOUT_SIDEBAR_REVERSE: false,
// 是否显示开始阅读按钮
- SHOW_START_READING: false,
+ SHOW_START_READING: true,
// 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
From 08218c484c9b820c3f756626994c81d319aae81a Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 16:23:49 +0800
Subject: [PATCH 09/39] =?UTF-8?q?=E6=98=AF=E5=90=A6=E6=98=BE=E7=A4=BA?=
=?UTF-8?q?=E5=BC=80=E5=A7=8B=E9=98=85=E8=AF=BB=E6=8C=89=E9=92=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blog.config.js | 691 ++++++++++++++++---------------
themes/hexo/components/Hero.js | 2 +-
themes/hexo/config.js | 2 +
themes/matery/components/Hero.js | 2 +-
themes/matery/config.js | 3 +
5 files changed, 353 insertions(+), 347 deletions(-)
diff --git a/blog.config.js b/blog.config.js
index b2c15835..61a78a80 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -1,383 +1,384 @@
// 注: process.env.XX是Vercel的环境变量,配置方式见:https://docs.tangly1024.com/zh/features/personality
const BLOG = {
- // Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
- NOTION_PAGE_ID:
+ // Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
+ NOTION_PAGE_ID:
process.env.NOTION_PAGE_ID || '02ab3b8678004aa69e9e415905ef32a5',
- PSEUDO_STATIC: process.env.NEXT_PUBLIC_PSEUDO_STATIC || false, // 伪静态路径,开启后所有文章URL都以 .html 结尾。
- NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新内容缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据;调大该值有助于节省Vercel资源、同时提升访问速率,但也会使文章更新有延迟。
- THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example','matery','gitbook','simple'] @see https://preview.tangly1024.com
- THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
- LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
- SINCE: 2021, // e.g if leave this empty, current year will be used.
- APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
- APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
-
- // 3.14.1版本后,欢迎语在此配置,英文逗号隔开 , 即可支持多个欢迎语打字效果。
- GREETING_WORDS: process.env.NEXT_PUBLIC_GREETING_WORDS || 'Hi,我是一个程序员, Hi,我是一个打工人,Hi,我是一个干饭人,欢迎来到我的博客🎉',
-
- CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
-
- AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'NotionNext', // 您的昵称 例如 tangly1024
- BIO: process.env.NEXT_PUBLIC_BIO || '一个普通的干饭人🍚', // 作者简介
- LINK: process.env.NEXT_PUBLIC_LINK || 'https://tangly1024.com', // 网站地址
- KEYWORDS: process.env.NEXT_PUBLIC_KEYWORD || 'Notion, 博客', // 网站关键词 英文逗号隔开
- // 社交链接,不需要可留空白,例如 CONTACT_WEIBO:''
- CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '', // 邮箱地址 例如mail@tangly1024.com
- CONTACT_WEIBO: process.env.NEXT_PUBLIC_CONTACT_WEIBO || '', // 你的微博个人主页
- CONTACT_TWITTER: process.env.NEXT_PUBLIC_CONTACT_TWITTER || '', // 你的twitter个人主页
- CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || '', // 你的github个人主页 例如 https://github.com/tangly1024
- CONTACT_TELEGRAM: process.env.NEXT_PUBLIC_CONTACT_TELEGRAM || '', // 你的telegram 地址 例如 https://t.me/tangly_1024
- CONTACT_LINKEDIN: process.env.NEXT_PUBLIC_CONTACT_LINKEDIN || '', // 你的linkedIn 首页
- CONTACT_INSTAGRAM: process.env.NEXT_PUBLIC_CONTACT_INSTAGRAM || '', // 您的instagram地址
- CONTACT_BILIBILI: process.env.NEXT_PUBLIC_CONTACT_BILIBILI || '', // B站主页
- CONTACT_YOUTUBE: process.env.NEXT_PUBLIC_CONTACT_YOUTUBE || '', // Youtube主页
-
- NOTION_HOST: process.env.NEXT_PUBLIC_NOTION_HOST || 'https://www.notion.so', // Notion域名,您可以选择用自己的域名进行反向代理,如果不懂得什么是反向代理,请勿修改此项
-
- BLOG_FAVICON: process.env.NEXT_PUBLIC_FAVICON || '/favicon.ico', // blog favicon 配置, 默认使用 /public/favicon.ico,支持在线图片,如 https://img.imesong.com/favicon.png
-
- // START ************网站字体*****************
-
- FONT_STYLE: process.env.NEXT_PUBLIC_FONT_STYLE || 'font-sans', // ['font-serif','font-sans'] 两种可选,分别是衬线和无衬线: 参考 https://www.jianshu.com/p/55e410bd2115
- // 字体CSS 例如 https://npm.elemecdn.com/lxgw-wenkai-webfont@1.6.0/style.css
- FONT_URL: [
- // 'https://npm.elemecdn.com/lxgw-wenkai-webfont@1.6.0/style.css'
- 'https://fonts.googleapis.com/css?family=Bitter&display=swap',
- 'https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300&display=swap',
- 'https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300&display=swap'
- ],
- // 无衬线字体 例如'"LXGW WenKai"'
- FONT_SANS: [
- // '"LXGW WenKai"',
- '"PingFang SC"',
- '-apple-system',
- 'BlinkMacSystemFont',
- '"Hiragino Sans GB"',
- '"Microsoft YaHei"',
- '"Segoe UI Emoji"',
- '"Segoe UI Symbol"',
- '"Segoe UI"',
- '"Noto Sans SC"',
- 'HarmonyOS_Regular',
- '"Helvetica Neue"',
- 'Helvetica',
- '"Source Han Sans SC"',
- 'Arial',
- 'sans-serif',
- '"Apple Color Emoji"'
- ],
- // 衬线字体 例如'"LXGW WenKai"'
- FONT_SERIF: [
- // '"LXGW WenKai"',
- 'Bitter',
- '"Noto Serif SC"',
- 'SimSun',
- '"Times New Roman"',
- 'Times',
- 'serif',
- '"Segoe UI Emoji"',
- '"Segoe UI Symbol"',
- '"Apple Color Emoji"'
- ],
- FONT_AWESOME: process.env.NEXT_PUBLIC_FONT_AWESOME_PATH || 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css', // font-awesome 字体图标地址; 可选 /css/all.min.css , https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/6.0.0/css/all.min.css
-
- // END ************网站字体*****************
-
- CUSTOM_RIGHT_CLICK_CONTEXT_MENU: process.env.NEXT_PUBLIC_CUSTOM_RIGHT_CLICK_CONTEXT_MENU || true, // 自定义右键菜单,覆盖系统菜单
-
- // 自定义外部脚本,外部样式
- CUSTOM_EXTERNAL_JS: [''], // e.g. ['http://xx.com/script.js','http://xx.com/script.js']
- CUSTOM_EXTERNAL_CSS: [''], // e.g. ['http://xx.com/style.css','http://xx.com/style.css']
-
- // 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
- LAYOUT_SIDEBAR_REVERSE: false,
-
- // 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
- FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
- FACEBOOK_PAGE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE || null, // Facebook Page 的連結 e.g https://www.facebook.com/tw.andys.pro
- FACEBOOK_PAGE_ID: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_ID || '', // Facebook Page ID 來啟用 messenger 聊天功能
- FACEBOOK_APP_ID: process.env.NEXT_PUBLIC_FACEBOOK_APP_ID || '', // Facebook App ID 來啟用 messenger 聊天功能 获取: https://developers.facebook.com/
-
- BEI_AN: process.env.NEXT_PUBLIC_BEI_AN || '', // 备案号 闽ICP备XXXXXXX
-
- // START********代码相关********
- // PrismJs 代码相关
- PRISM_JS_PATH: 'https://npm.elemecdn.com/prismjs@1.29.0/components/',
- PRISM_JS_AUTO_LOADER: 'https://npm.elemecdn.com/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js',
-
- // 代码主题 @see https://github.com/PrismJS/prism-themes
- PRISM_THEME_PREFIX_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-okaidia.css', // 代码块默认主题
- PRISM_THEME_SWITCH: process.env.NEXT_PUBLIC_PRISM_THEME_SWITCH || true, // 是否开启浅色/深色模式代码主题切换; 开启后将显示以下两个主题
- PRISM_THEME_LIGHT_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-solarizedlight.css', // 浅色模式主题
- PRISM_THEME_DARK_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-okaidia.min.css', // 深色模式主题
-
- CODE_MAC_BAR: process.env.NEXT_PUBLIC_CODE_MAC_BAR || true, // 代码左上角显示mac的红黄绿图标
- CODE_LINE_NUMBERS: process.env.NEXT_PUBLIC_CODE_LINE_NUMBERS || false, // 是否显示行号
- CODE_COLLAPSE: process.env.NEXT_PUBLIC_CODE_COLLAPSE || true, // 是否折叠代码框
- // END********代码相关********
-
- // Mermaid 图表CDN
- MERMAID_CDN: process.env.NEXT_PUBLIC_MERMAID_CDN || 'https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.2.4/mermaid.min.js', // CDN
-
- BACKGROUND_LIGHT: '#eeeeee', // use hex value, don't forget '#' e.g #fffefc
- BACKGROUND_DARK: '#000000', // use hex value, don't forget '#'
- SUB_PATH: '', // leave this empty unless you want to deploy in a folder
-
- POST_SHARE_BAR_ENABLE: process.env.NEXT_PUBLIC_POST_SHARE_BAR || 'true', // 文章分享功能 ,将在底部显示一个分享条
- POSTS_SHARE_SERVICES: process.env.NEXT_PUBLIC_POST_SHARE_SERVICES || 'link,wechat,qq,weibo,email,facebook,twitter,telegram,messenger,line,reddit,whatsapp,linkedin', // 分享的服務,按顺序显示,逗号隔开
- // 所有支持的分享服务:link(复制链接),wechat(微信),qq,weibo(微博),email(邮件),facebook,twitter,telegram,messenger,line,reddit,whatsapp,linkedin,vkshare,okshare,tumblr,livejournal,mailru,viber,workplace,pocket,instapaper,hatena
-
- POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX || 'article',
- // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug]
- // 如果此项配置为 '' 空, 则文章将没有前缀路径,使用场景: 希望文章前缀路径为 /post 的情况 支持多级
- // 支援類似 WP 可自訂文章連結格式的功能:https://wordpress.org/documentation/article/customize-permalinks/,目前只先實作 %year%/%month%/%day%
- // 例:如想連結改成前綴 article + 時間戳記,可變更為: 'article/%year%/%month%/%day%'
-
- POST_LIST_STYLE: process.env.NEXT_PUBLIC_POST_LIST_STYLE || 'page', // ['page','scroll] 文章列表样式:页码分页、单页滚动加载
- POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
- POST_PREVIEW_LINES: 12, // 预览博客行数
- POST_RECOMMEND_COUNT: 6, // 推荐文章数量
- POSTS_PER_PAGE: 12, // post counts per page
- POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制
-
- ALGOLIA_APP_ID: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || null, // 在这里查看 https://dashboard.algolia.com/account/api-keys/
- ALGOLIA_ADMIN_APP_KEY: process.env.ALGOLIA_ADMIN_APP_KEY || null, // 管理后台的KEY,不要暴露在代码中,在这里查看 https://dashboard.algolia.com/account/api-keys/
- ALGOLIA_SEARCH_ONLY_APP_KEY: process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY || null, // 客户端搜索用的KEY
- ALGOLIA_INDEX: process.env.NEXT_PUBLIC_ALGOLIA_INDEX || null, // 在Algolia中创建一个index用作数据库
- ALGOLIA_RECREATE_DATA: process.env.ALGOLIA_RECREATE_DATA || process.env.npm_lifecycle_event === 'build', // 为true时重新构建索引数据; 默认在build时会构建
-
- PREVIEW_CATEGORY_COUNT: 16, // 首页最多展示的分类数量,0为不限制
- PREVIEW_TAG_COUNT: 16, // 首页最多展示的标签数量,0为不限制
-
- POST_DISABLE_GALLERY_CLICK: process.env.NEXT_PUBLIC_POST_DISABLE_GALLERY_CLICK || false, // 画册视图禁止点击,方便在友链页面的画册插入链接
-
- // ********动态特效相关********
- // 鼠标点击烟花特效
- FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || false, // 开关
- // 烟花色彩,感谢 https://github.com/Vixcity 提交的色彩
- FIREWORKS_COLOR: [
- '255, 20, 97',
- '24, 255, 146',
- '90, 135, 255',
- '251, 243, 140'
- ],
-
- // 樱花飘落特效
- SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
- // 漂浮线段特效
- NEST: process.env.NEXT_PUBLIC_NEST || false, // 开关
- // 动态彩带特效
- FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || false, // 开关
- // 静态彩带特效
- RIBBON: process.env.NEXT_PUBLIC_RIBBON || false, // 开关
- // 星空雨特效 黑夜模式才会生效
- STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || false, // 开关
-
- // ********挂件组件相关********
- // Chatbase
- CHATBASE_ID: process.env.NEXT_PUBLIC_CHATBASE_ID || null, // 是否显示chatbase机器人 https://www.chatbase.co/
- // 悬浮挂件
- WIDGET_PET: process.env.NEXT_PUBLIC_WIDGET_PET || true, // 是否显示宠物挂件
- WIDGET_PET_LINK:
+ PSEUDO_STATIC: process.env.NEXT_PUBLIC_PSEUDO_STATIC || false, // 伪静态路径,开启后所有文章URL都以 .html 结尾。
+ NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新内容缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据;调大该值有助于节省Vercel资源、同时提升访问速率,但也会使文章更新有延迟。
+ THEME: process.env.NEXT_PUBLIC_THEME || 'hexo', // 主题, 支持 ['next','hexo',"fukasawa','medium','example','matery','gitbook','simple'] @see https://preview.tangly1024.com
+ THEME_SWITCH: process.env.NEXT_PUBLIC_THEME_SWITCH || false, // 是否显示切换主题按钮
+ LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
+ SINCE: 2021, // e.g if leave this empty, current year will be used.
+ APPEARANCE: process.env.NEXT_PUBLIC_APPEARANCE || 'light', // ['light', 'dark', 'auto'], // light 日间模式 , dark夜间模式, auto根据时间和主题自动夜间模式
+ APPEARANCE_DARK_TIME: process.env.NEXT_PUBLIC_APPEARANCE_DARK_TIME || [18, 6], // 夜间模式起至时间,false时关闭根据时间自动切换夜间模式
+
+ // 3.14.1版本后,欢迎语在此配置,英文逗号隔开 , 即可支持多个欢迎语打字效果。
+ GREETING_WORDS: process.env.NEXT_PUBLIC_GREETING_WORDS || 'Hi,我是一个程序员, Hi,我是一个打工人,Hi,我是一个干饭人,欢迎来到我的博客🎉',
+
+ CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || false, // 支持Menu 类型,从3.12.0版本起,各主题将逐步支持灵活的二级菜单配置,替代了原来的Page类型,此配置是试验功能、默认关闭。
+
+ AUTHOR: process.env.NEXT_PUBLIC_AUTHOR || 'NotionNext', // 您的昵称 例如 tangly1024
+ BIO: process.env.NEXT_PUBLIC_BIO || '一个普通的干饭人🍚', // 作者简介
+ LINK: process.env.NEXT_PUBLIC_LINK || 'https://tangly1024.com', // 网站地址
+ KEYWORDS: process.env.NEXT_PUBLIC_KEYWORD || 'Notion, 博客', // 网站关键词 英文逗号隔开
+
+ // 社交链接,不需要可留空白,例如 CONTACT_WEIBO:''
+ CONTACT_EMAIL: process.env.NEXT_PUBLIC_CONTACT_EMAIL || '', // 邮箱地址 例如mail@tangly1024.com
+ CONTACT_WEIBO: process.env.NEXT_PUBLIC_CONTACT_WEIBO || '', // 你的微博个人主页
+ CONTACT_TWITTER: process.env.NEXT_PUBLIC_CONTACT_TWITTER || '', // 你的twitter个人主页
+ CONTACT_GITHUB: process.env.NEXT_PUBLIC_CONTACT_GITHUB || '', // 你的github个人主页 例如 https://github.com/tangly1024
+ CONTACT_TELEGRAM: process.env.NEXT_PUBLIC_CONTACT_TELEGRAM || '', // 你的telegram 地址 例如 https://t.me/tangly_1024
+ CONTACT_LINKEDIN: process.env.NEXT_PUBLIC_CONTACT_LINKEDIN || '', // 你的linkedIn 首页
+ CONTACT_INSTAGRAM: process.env.NEXT_PUBLIC_CONTACT_INSTAGRAM || '', // 您的instagram地址
+ CONTACT_BILIBILI: process.env.NEXT_PUBLIC_CONTACT_BILIBILI || '', // B站主页
+ CONTACT_YOUTUBE: process.env.NEXT_PUBLIC_CONTACT_YOUTUBE || '', // Youtube主页
+
+ NOTION_HOST: process.env.NEXT_PUBLIC_NOTION_HOST || 'https://www.notion.so', // Notion域名,您可以选择用自己的域名进行反向代理,如果不懂得什么是反向代理,请勿修改此项
+
+ BLOG_FAVICON: process.env.NEXT_PUBLIC_FAVICON || '/favicon.ico', // blog favicon 配置, 默认使用 /public/favicon.ico,支持在线图片,如 https://img.imesong.com/favicon.png
+
+ // START ************网站字体*****************
+
+ FONT_STYLE: process.env.NEXT_PUBLIC_FONT_STYLE || 'font-sans', // ['font-serif','font-sans'] 两种可选,分别是衬线和无衬线: 参考 https://www.jianshu.com/p/55e410bd2115
+ // 字体CSS 例如 https://npm.elemecdn.com/lxgw-wenkai-webfont@1.6.0/style.css
+ FONT_URL: [
+ // 'https://npm.elemecdn.com/lxgw-wenkai-webfont@1.6.0/style.css'
+ 'https://fonts.googleapis.com/css?family=Bitter&display=swap',
+ 'https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300&display=swap',
+ 'https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300&display=swap'
+ ],
+ // 无衬线字体 例如'"LXGW WenKai"'
+ FONT_SANS: [
+ // '"LXGW WenKai"',
+ '"PingFang SC"',
+ '-apple-system',
+ 'BlinkMacSystemFont',
+ '"Hiragino Sans GB"',
+ '"Microsoft YaHei"',
+ '"Segoe UI Emoji"',
+ '"Segoe UI Symbol"',
+ '"Segoe UI"',
+ '"Noto Sans SC"',
+ 'HarmonyOS_Regular',
+ '"Helvetica Neue"',
+ 'Helvetica',
+ '"Source Han Sans SC"',
+ 'Arial',
+ 'sans-serif',
+ '"Apple Color Emoji"'
+ ],
+ // 衬线字体 例如'"LXGW WenKai"'
+ FONT_SERIF: [
+ // '"LXGW WenKai"',
+ 'Bitter',
+ '"Noto Serif SC"',
+ 'SimSun',
+ '"Times New Roman"',
+ 'Times',
+ 'serif',
+ '"Segoe UI Emoji"',
+ '"Segoe UI Symbol"',
+ '"Apple Color Emoji"'
+ ],
+ FONT_AWESOME: process.env.NEXT_PUBLIC_FONT_AWESOME_PATH || 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css', // font-awesome 字体图标地址; 可选 /css/all.min.css , https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/font-awesome/6.0.0/css/all.min.css
+
+ // END ************网站字体*****************
+
+ CUSTOM_RIGHT_CLICK_CONTEXT_MENU: process.env.NEXT_PUBLIC_CUSTOM_RIGHT_CLICK_CONTEXT_MENU || true, // 自定义右键菜单,覆盖系统菜单
+
+ // 自定义外部脚本,外部样式
+ CUSTOM_EXTERNAL_JS: [''], // e.g. ['http://xx.com/script.js','http://xx.com/script.js']
+ CUSTOM_EXTERNAL_CSS: [''], // e.g. ['http://xx.com/style.css','http://xx.com/style.css']
+
+ // 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
+ LAYOUT_SIDEBAR_REVERSE: false,
+
+ // 一个小插件展示你的facebook fan page~ @see https://tw.andys.pro/article/add-facebook-fanpage-notionnext
+ FACEBOOK_PAGE_TITLE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_TITLE || null, // 邊欄 Facebook Page widget 的標題欄,填''則無標題欄 e.g FACEBOOK 粉絲團'
+ FACEBOOK_PAGE: process.env.NEXT_PUBLIC_FACEBOOK_PAGE || null, // Facebook Page 的連結 e.g https://www.facebook.com/tw.andys.pro
+ FACEBOOK_PAGE_ID: process.env.NEXT_PUBLIC_FACEBOOK_PAGE_ID || '', // Facebook Page ID 來啟用 messenger 聊天功能
+ FACEBOOK_APP_ID: process.env.NEXT_PUBLIC_FACEBOOK_APP_ID || '', // Facebook App ID 來啟用 messenger 聊天功能 获取: https://developers.facebook.com/
+
+ BEI_AN: process.env.NEXT_PUBLIC_BEI_AN || '', // 备案号 闽ICP备XXXXXXX
+
+ // START********代码相关********
+ // PrismJs 代码相关
+ PRISM_JS_PATH: 'https://npm.elemecdn.com/prismjs@1.29.0/components/',
+ PRISM_JS_AUTO_LOADER: 'https://npm.elemecdn.com/prismjs@1.29.0/plugins/autoloader/prism-autoloader.min.js',
+
+ // 代码主题 @see https://github.com/PrismJS/prism-themes
+ PRISM_THEME_PREFIX_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-okaidia.css', // 代码块默认主题
+ PRISM_THEME_SWITCH: process.env.NEXT_PUBLIC_PRISM_THEME_SWITCH || true, // 是否开启浅色/深色模式代码主题切换; 开启后将显示以下两个主题
+ PRISM_THEME_LIGHT_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-solarizedlight.css', // 浅色模式主题
+ PRISM_THEME_DARK_PATH: 'https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-okaidia.min.css', // 深色模式主题
+
+ CODE_MAC_BAR: process.env.NEXT_PUBLIC_CODE_MAC_BAR || true, // 代码左上角显示mac的红黄绿图标
+ CODE_LINE_NUMBERS: process.env.NEXT_PUBLIC_CODE_LINE_NUMBERS || false, // 是否显示行号
+ CODE_COLLAPSE: process.env.NEXT_PUBLIC_CODE_COLLAPSE || true, // 是否折叠代码框
+ // END********代码相关********
+
+ // Mermaid 图表CDN
+ MERMAID_CDN: process.env.NEXT_PUBLIC_MERMAID_CDN || 'https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.2.4/mermaid.min.js', // CDN
+
+ BACKGROUND_LIGHT: '#eeeeee', // use hex value, don't forget '#' e.g #fffefc
+ BACKGROUND_DARK: '#000000', // use hex value, don't forget '#'
+ SUB_PATH: '', // leave this empty unless you want to deploy in a folder
+
+ POST_SHARE_BAR_ENABLE: process.env.NEXT_PUBLIC_POST_SHARE_BAR || 'true', // 文章分享功能 ,将在底部显示一个分享条
+ POSTS_SHARE_SERVICES: process.env.NEXT_PUBLIC_POST_SHARE_SERVICES || 'link,wechat,qq,weibo,email,facebook,twitter,telegram,messenger,line,reddit,whatsapp,linkedin', // 分享的服務,按顺序显示,逗号隔开
+ // 所有支持的分享服务:link(复制链接),wechat(微信),qq,weibo(微博),email(邮件),facebook,twitter,telegram,messenger,line,reddit,whatsapp,linkedin,vkshare,okshare,tumblr,livejournal,mailru,viber,workplace,pocket,instapaper,hatena
+
+ POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX || 'article',
+ // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug]
+ // 如果此项配置为 '' 空, 则文章将没有前缀路径,使用场景: 希望文章前缀路径为 /post 的情况 支持多级
+ // 支援類似 WP 可自訂文章連結格式的功能:https://wordpress.org/documentation/article/customize-permalinks/,目前只先實作 %year%/%month%/%day%
+ // 例:如想連結改成前綴 article + 時間戳記,可變更為: 'article/%year%/%month%/%day%'
+
+ POST_LIST_STYLE: process.env.NEXT_PUBLIC_POST_LIST_STYLE || 'page', // ['page','scroll] 文章列表样式:页码分页、单页滚动加载
+ POST_LIST_PREVIEW: process.env.NEXT_PUBLIC_POST_PREVIEW || 'false', // 是否在列表加载文章预览
+ POST_PREVIEW_LINES: 12, // 预览博客行数
+ POST_RECOMMEND_COUNT: 6, // 推荐文章数量
+ POSTS_PER_PAGE: 12, // post counts per page
+ POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制
+
+ ALGOLIA_APP_ID: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || null, // 在这里查看 https://dashboard.algolia.com/account/api-keys/
+ ALGOLIA_ADMIN_APP_KEY: process.env.ALGOLIA_ADMIN_APP_KEY || null, // 管理后台的KEY,不要暴露在代码中,在这里查看 https://dashboard.algolia.com/account/api-keys/
+ ALGOLIA_SEARCH_ONLY_APP_KEY: process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY || null, // 客户端搜索用的KEY
+ ALGOLIA_INDEX: process.env.NEXT_PUBLIC_ALGOLIA_INDEX || null, // 在Algolia中创建一个index用作数据库
+ ALGOLIA_RECREATE_DATA: process.env.ALGOLIA_RECREATE_DATA || process.env.npm_lifecycle_event === 'build', // 为true时重新构建索引数据; 默认在build时会构建
+
+ PREVIEW_CATEGORY_COUNT: 16, // 首页最多展示的分类数量,0为不限制
+ PREVIEW_TAG_COUNT: 16, // 首页最多展示的标签数量,0为不限制
+
+ POST_DISABLE_GALLERY_CLICK: process.env.NEXT_PUBLIC_POST_DISABLE_GALLERY_CLICK || false, // 画册视图禁止点击,方便在友链页面的画册插入链接
+
+ // ********动态特效相关********
+ // 鼠标点击烟花特效
+ FIREWORKS: process.env.NEXT_PUBLIC_FIREWORKS || false, // 开关
+ // 烟花色彩,感谢 https://github.com/Vixcity 提交的色彩
+ FIREWORKS_COLOR: [
+ '255, 20, 97',
+ '24, 255, 146',
+ '90, 135, 255',
+ '251, 243, 140'
+ ],
+
+ // 樱花飘落特效
+ SAKURA: process.env.NEXT_PUBLIC_SAKURA || false, // 开关
+ // 漂浮线段特效
+ NEST: process.env.NEXT_PUBLIC_NEST || false, // 开关
+ // 动态彩带特效
+ FLUTTERINGRIBBON: process.env.NEXT_PUBLIC_FLUTTERINGRIBBON || false, // 开关
+ // 静态彩带特效
+ RIBBON: process.env.NEXT_PUBLIC_RIBBON || false, // 开关
+ // 星空雨特效 黑夜模式才会生效
+ STARRY_SKY: process.env.NEXT_PUBLIC_STARRY_SKY || false, // 开关
+
+ // ********挂件组件相关********
+ // Chatbase
+ CHATBASE_ID: process.env.NEXT_PUBLIC_CHATBASE_ID || null, // 是否显示chatbase机器人 https://www.chatbase.co/
+ // 悬浮挂件
+ WIDGET_PET: process.env.NEXT_PUBLIC_WIDGET_PET || true, // 是否显示宠物挂件
+ WIDGET_PET_LINK:
process.env.NEXT_PUBLIC_WIDGET_PET_LINK ||
'https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json', // 挂件模型地址 @see https://github.com/xiazeyu/live2d-widget-models
- WIDGET_PET_SWITCH_THEME: process.env.NEXT_PUBLIC_WIDGET_PET_SWITCH_THEME || true, // 点击宠物挂件切换博客主题
-
- // 音乐播放插件
- MUSIC_PLAYER: process.env.NEXT_PUBLIC_MUSIC_PLAYER || false, // 是否使用音乐播放插件
- MUSIC_PLAYER_VISIBLE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_VISIBLE || true, // 是否在左下角显示播放和切换,如果使用播放器,打开自动播放再隐藏,就会以类似背景音乐的方式播放,无法取消和暂停
- MUSIC_PLAYER_AUTO_PLAY:
+ WIDGET_PET_SWITCH_THEME: process.env.NEXT_PUBLIC_WIDGET_PET_SWITCH_THEME || true, // 点击宠物挂件切换博客主题
+
+ // 音乐播放插件
+ MUSIC_PLAYER: process.env.NEXT_PUBLIC_MUSIC_PLAYER || false, // 是否使用音乐播放插件
+ MUSIC_PLAYER_VISIBLE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_VISIBLE || true, // 是否在左下角显示播放和切换,如果使用播放器,打开自动播放再隐藏,就会以类似背景音乐的方式播放,无法取消和暂停
+ MUSIC_PLAYER_AUTO_PLAY:
process.env.NEXT_PUBLIC_MUSIC_PLAYER_AUTO_PLAY || true, // 是否自动播放,不过自动播放时常不生效(移动设备不支持自动播放)
- MUSIC_PLAYER_LRC_TYPE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_LRC_TYPE || '0', // 歌词显示类型,可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)(前提是有配置歌词路径,对 meting 无效)
- MUSIC_PLAYER_CDN_URL:
+ MUSIC_PLAYER_LRC_TYPE: process.env.NEXT_PUBLIC_MUSIC_PLAYER_LRC_TYPE || '0', // 歌词显示类型,可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)(前提是有配置歌词路径,对 meting 无效)
+ MUSIC_PLAYER_CDN_URL:
process.env.NEXT_PUBLIC_MUSIC_PLAYER_CDN_URL ||
'https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/aplayer/1.10.1/APlayer.min.js',
- MUSIC_PLAYER_ORDER: process.env.NEXT_PUBLIC_MUSIC_PLAYER_ORDER || 'list', // 默认播放方式,顺序 list,随机 random
- MUSIC_PLAYER_AUDIO_LIST: [
- // 示例音乐列表。除了以下配置外,还可配置歌词,具体配置项看此文档 https://aplayer.js.org/#/zh-Hans/
- {
- name: '风を共に舞う気持ち',
- artist: 'Falcom Sound Team jdk',
- url: 'https://music.163.com/song/media/outer/url?id=731419.mp3',
- cover:
+ MUSIC_PLAYER_ORDER: process.env.NEXT_PUBLIC_MUSIC_PLAYER_ORDER || 'list', // 默认播放方式,顺序 list,随机 random
+ MUSIC_PLAYER_AUDIO_LIST: [
+ // 示例音乐列表。除了以下配置外,还可配置歌词,具体配置项看此文档 https://aplayer.js.org/#/zh-Hans/
+ {
+ name: '风を共に舞う気持ち',
+ artist: 'Falcom Sound Team jdk',
+ url: 'https://music.163.com/song/media/outer/url?id=731419.mp3',
+ cover:
'https://p2.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
- },
- {
- name: '王都グランセル',
- artist: 'Falcom Sound Team jdk',
- url: 'https://music.163.com/song/media/outer/url?id=731355.mp3',
- cover:
+ },
+ {
+ name: '王都グランセル',
+ artist: 'Falcom Sound Team jdk',
+ url: 'https://music.163.com/song/media/outer/url?id=731355.mp3',
+ cover:
'https://p1.music.126.net/kn6ugISTonvqJh3LHLaPtQ==/599233837187278.jpg'
- }
- ],
- MUSIC_PLAYER_METING: process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING || false, // 是否要开启 MetingJS,从平台获取歌单。会覆盖自定义的 MUSIC_PLAYER_AUDIO_LIST,更多配置信息:https://github.com/metowolf/MetingJS
- MUSIC_PLAYER_METING_SERVER:
+ }
+ ],
+ MUSIC_PLAYER_METING: process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING || false, // 是否要开启 MetingJS,从平台获取歌单。会覆盖自定义的 MUSIC_PLAYER_AUDIO_LIST,更多配置信息:https://github.com/metowolf/MetingJS
+ MUSIC_PLAYER_METING_SERVER:
process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_SERVER || 'netease', // 音乐平台,[netease, tencent, kugou, xiami, baidu]
- MUSIC_PLAYER_METING_ID:
+ MUSIC_PLAYER_METING_ID:
process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_ID || '60198', // 对应歌单的 id
- MUSIC_PLAYER_METING_LRC_TYPE:
+ MUSIC_PLAYER_METING_LRC_TYPE:
process.env.NEXT_PUBLIC_MUSIC_PLAYER_METING_LRC_TYPE || '1', // 可选值: 3 | 1 | 0(0:禁用 lrc 歌词,1:lrc 格式的字符串,3:lrc 文件 url)
-
- // ********挂件组件相关********
- // ----> 评论互动 可同时开启多个支持 WALINE VALINE GISCUS CUSDIS UTTERRANCES GITALK
-
- // twikoo
- COMMENT_TWIKOO_ENV_ID: process.env.NEXT_PUBLIC_COMMENT_ENV_ID || '', // TWIKOO后端地址 腾讯云环境填envId;Vercel环境填域名,教程:https://tangly1024.com/article/notionnext-twikoo
- COMMENT_TWIKOO_COUNT_ENABLE: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_COUNT_ENABLE || false, // 博客列表是否显示评论数
- COMMENT_TWIKOO_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL || 'https://cdn.staticfile.org/twikoo/1.6.16/twikoo.all.min.js', // twikoo客户端cdn
-
- // utterance
- COMMENT_UTTERRANCES_REPO:
+
+ // ********挂件组件相关********
+ // ----> 评论互动 可同时开启多个支持 WALINE VALINE GISCUS CUSDIS UTTERRANCES GITALK
+
+ // twikoo
+ COMMENT_TWIKOO_ENV_ID: process.env.NEXT_PUBLIC_COMMENT_ENV_ID || '', // TWIKOO后端地址 腾讯云环境填envId;Vercel环境填域名,教程:https://tangly1024.com/article/notionnext-twikoo
+ COMMENT_TWIKOO_COUNT_ENABLE: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_COUNT_ENABLE || false, // 博客列表是否显示评论数
+ COMMENT_TWIKOO_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_TWIKOO_CDN_URL || 'https://cdn.staticfile.org/twikoo/1.6.16/twikoo.all.min.js', // twikoo客户端cdn
+
+ // utterance
+ COMMENT_UTTERRANCES_REPO:
process.env.NEXT_PUBLIC_COMMENT_UTTERRANCES_REPO || '', // 你的代码仓库名, 例如我是 'tangly1024/NotionNext'; 更多文档参考 https://utteranc.es/
-
- // giscus @see https://giscus.app/
- COMMENT_GISCUS_REPO: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO || '', // 你的Github仓库名 e.g 'tangly1024/NotionNext'
- COMMENT_GISCUS_REPO_ID: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO_ID || '', // 你的Github Repo ID e.g ( 設定完 giscus 即可看到 )
- COMMENT_GISCUS_CATEGORY_ID:
+
+ // giscus @see https://giscus.app/
+ COMMENT_GISCUS_REPO: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO || '', // 你的Github仓库名 e.g 'tangly1024/NotionNext'
+ COMMENT_GISCUS_REPO_ID: process.env.NEXT_PUBLIC_COMMENT_GISCUS_REPO_ID || '', // 你的Github Repo ID e.g ( 設定完 giscus 即可看到 )
+ COMMENT_GISCUS_CATEGORY_ID:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_CATEGORY_ID || '', // 你的Github Discussions 內的 Category ID ( 設定完 giscus 即可看到 )
- COMMENT_GISCUS_MAPPING:
+ COMMENT_GISCUS_MAPPING:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_MAPPING || 'pathname', // 你的Github Discussions 使用哪種方式來標定文章, 預設 'pathname'
- COMMENT_GISCUS_REACTIONS_ENABLED:
+ COMMENT_GISCUS_REACTIONS_ENABLED:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_REACTIONS_ENABLED || '1', // 你的 Giscus 是否開啟文章表情符號 '1' 開啟 "0" 關閉 預設開啟
- COMMENT_GISCUS_EMIT_METADATA:
+ COMMENT_GISCUS_EMIT_METADATA:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_EMIT_METADATA || '0', // 你的 Giscus 是否提取 Metadata '1' 開啟 '0' 關閉 預設關閉
- COMMENT_GISCUS_INPUT_POSITION:
+ COMMENT_GISCUS_INPUT_POSITION:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_INPUT_POSITION || 'bottom', // 你的 Giscus 發表留言位置 'bottom' 尾部 'top' 頂部, 預設 'bottom'
- COMMENT_GISCUS_LANG: process.env.NEXT_PUBLIC_COMMENT_GISCUS_LANG || 'zh-CN', // 你的 Giscus 語言 e.g 'en', 'zh-TW', 'zh-CN', 預設 'en'
- COMMENT_GISCUS_LOADING:
+ COMMENT_GISCUS_LANG: process.env.NEXT_PUBLIC_COMMENT_GISCUS_LANG || 'zh-CN', // 你的 Giscus 語言 e.g 'en', 'zh-TW', 'zh-CN', 預設 'en'
+ COMMENT_GISCUS_LOADING:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_LOADING || 'lazy', // 你的 Giscus 載入是否漸進式載入, 預設 'lazy'
- COMMENT_GISCUS_CROSSORIGIN:
+ COMMENT_GISCUS_CROSSORIGIN:
process.env.NEXT_PUBLIC_COMMENT_GISCUS_CROSSORIGIN || 'anonymous', // 你的 Giscus 可以跨網域, 預設 'anonymous'
-
- COMMENT_CUSDIS_APP_ID: process.env.NEXT_PUBLIC_COMMENT_CUSDIS_APP_ID || '', // data-app-id 36位 see https://cusdis.com/
- COMMENT_CUSDIS_HOST:
+
+ COMMENT_CUSDIS_APP_ID: process.env.NEXT_PUBLIC_COMMENT_CUSDIS_APP_ID || '', // data-app-id 36位 see https://cusdis.com/
+ COMMENT_CUSDIS_HOST:
process.env.NEXT_PUBLIC_COMMENT_CUSDIS_HOST || 'https://cusdis.com', // data-host, change this if you're using self-hosted version
- COMMENT_CUSDIS_SCRIPT_SRC:
+ COMMENT_CUSDIS_SCRIPT_SRC:
process.env.NEXT_PUBLIC_COMMENT_CUSDIS_SCRIPT_SRC ||
'https://cusdis.com/js/cusdis.es.js', // change this if you're using self-hosted version
-
- // gitalk评论插件 更多参考 https://gitalk.github.io/
- COMMENT_GITALK_REPO: process.env.NEXT_PUBLIC_COMMENT_GITALK_REPO || '', // 你的Github仓库名,例如 'NotionNext'
- COMMENT_GITALK_OWNER: process.env.NEXT_PUBLIC_COMMENT_GITALK_OWNER || '', // 你的用户名 e.g tangly1024
- COMMENT_GITALK_ADMIN: process.env.NEXT_PUBLIC_COMMENT_GITALK_ADMIN || '', // 管理员用户名、一般是自己 e.g 'tangly1024'
- COMMENT_GITALK_CLIENT_ID:
+
+ // gitalk评论插件 更多参考 https://gitalk.github.io/
+ COMMENT_GITALK_REPO: process.env.NEXT_PUBLIC_COMMENT_GITALK_REPO || '', // 你的Github仓库名,例如 'NotionNext'
+ COMMENT_GITALK_OWNER: process.env.NEXT_PUBLIC_COMMENT_GITALK_OWNER || '', // 你的用户名 e.g tangly1024
+ COMMENT_GITALK_ADMIN: process.env.NEXT_PUBLIC_COMMENT_GITALK_ADMIN || '', // 管理员用户名、一般是自己 e.g 'tangly1024'
+ COMMENT_GITALK_CLIENT_ID:
process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_ID || '', // e.g 20位ID , 在gitalk后台获取
- COMMENT_GITALK_CLIENT_SECRET:
+ COMMENT_GITALK_CLIENT_SECRET:
process.env.NEXT_PUBLIC_COMMENT_GITALK_CLIENT_SECRET || '', // e.g 40位ID, 在gitalk后台获取
- COMMENT_GITALK_DISTRACTION_FREE_MODE: false, // 类似facebook的无干扰模式
- COMMENT_GITALK_JS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_JS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', // gitalk客户端 js cdn
- COMMENT_GITALK_CSS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_CSS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css', // gitalk客户端 css cdn
-
- COMMENT_GITTER_ROOM: process.env.NEXT_PUBLIC_COMMENT_GITTER_ROOM || '', // gitter聊天室 see https://gitter.im/ 不需要则留空
- COMMENT_DAO_VOICE_ID: process.env.NEXT_PUBLIC_COMMENT_DAO_VOICE_ID || '', // DaoVoice http://dashboard.daovoice.io/get-started
- COMMENT_TIDIO_ID: process.env.NEXT_PUBLIC_COMMENT_TIDIO_ID || '', // [tidio_id] -> //code.tidio.co/[tidio_id].js
-
- COMMENT_VALINE_CDN: process.env.NEXT_PUBLIC_VALINE_CDN || 'https://unpkg.com/valine@1.5.1/dist/Valine.min.js',
- COMMENT_VALINE_APP_ID: process.env.NEXT_PUBLIC_VALINE_ID || '', // Valine @see https://valine.js.org/quickstart.html 或 https://github.com/stonehank/react-valine#%E8%8E%B7%E5%8F%96app-id-%E5%92%8C-app-key
- COMMENT_VALINE_APP_KEY: process.env.NEXT_PUBLIC_VALINE_KEY || '',
- COMMENT_VALINE_SERVER_URLS: process.env.NEXT_PUBLIC_VALINE_SERVER_URLS || '', // 该配置适用于国内自定义域名用户, 海外版本会自动检测(无需手动填写) @see https://valine.js.org/configuration.html#serverURLs
- COMMENT_VALINE_PLACEHOLDER:
+ COMMENT_GITALK_DISTRACTION_FREE_MODE: false, // 类似facebook的无干扰模式
+ COMMENT_GITALK_JS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_JS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', // gitalk客户端 js cdn
+ COMMENT_GITALK_CSS_CDN_URL: process.env.NEXT_PUBLIC_COMMENT_GITALK_CSS_CDN_URL || 'https://cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.css', // gitalk客户端 css cdn
+
+ COMMENT_GITTER_ROOM: process.env.NEXT_PUBLIC_COMMENT_GITTER_ROOM || '', // gitter聊天室 see https://gitter.im/ 不需要则留空
+ COMMENT_DAO_VOICE_ID: process.env.NEXT_PUBLIC_COMMENT_DAO_VOICE_ID || '', // DaoVoice http://dashboard.daovoice.io/get-started
+ COMMENT_TIDIO_ID: process.env.NEXT_PUBLIC_COMMENT_TIDIO_ID || '', // [tidio_id] -> //code.tidio.co/[tidio_id].js
+
+ COMMENT_VALINE_CDN: process.env.NEXT_PUBLIC_VALINE_CDN || 'https://unpkg.com/valine@1.5.1/dist/Valine.min.js',
+ COMMENT_VALINE_APP_ID: process.env.NEXT_PUBLIC_VALINE_ID || '', // Valine @see https://valine.js.org/quickstart.html 或 https://github.com/stonehank/react-valine#%E8%8E%B7%E5%8F%96app-id-%E5%92%8C-app-key
+ COMMENT_VALINE_APP_KEY: process.env.NEXT_PUBLIC_VALINE_KEY || '',
+ COMMENT_VALINE_SERVER_URLS: process.env.NEXT_PUBLIC_VALINE_SERVER_URLS || '', // 该配置适用于国内自定义域名用户, 海外版本会自动检测(无需手动填写) @see https://valine.js.org/configuration.html#serverURLs
+ COMMENT_VALINE_PLACEHOLDER:
process.env.NEXT_PUBLIC_VALINE_PLACEHOLDER || '抢个沙发吧~', // 可以搭配后台管理评论 https://github.com/DesertsP/Valine-Admin 便于查看评论,以及邮件通知,垃圾评论过滤等功能
-
- COMMENT_WALINE_SERVER_URL: process.env.NEXT_PUBLIC_WALINE_SERVER_URL || '', // 请配置完整的Waline评论地址 例如 hhttps://preview-waline.tangly1024.com @see https://waline.js.org/guide/get-started.html
- COMMENT_WALINE_RECENT: process.env.NEXT_PUBLIC_WALINE_RECENT || false, // 最新评论
-
- // 此评论系统基于WebMention,细节可参考https://webmention.io
- // 它是一个基于IndieWeb理念的开放式评论系统,下方COMMENT_WEBMENTION包含的属性皆需配置:
- // ENABLE: 是否开启
- // AUTH: Webmention使用的IndieLogin,可使用Twitter或Github个人页面连结
- // HOSTNAME: Webmention绑定之网域,通常即为本站网址
- // TWITTER_USERNAME: 评论显示区域需要的资讯
- // TOKEN: Webmention的API token
- COMMENT_WEBMENTION: {
- ENABLE: process.env.NEXT_PUBLIC_WEBMENTION_ENABLE || false,
- AUTH: process.env.NEXT_PUBLIC_WEBMENTION_AUTH || '',
- HOSTNAME: process.env.NEXT_PUBLIC_WEBMENTION_HOSTNAME || '',
- TWITTER_USERNAME: process.env.NEXT_PUBLIC_TWITTER_USERNAME || '',
- TOKEN: process.env.NEXT_PUBLIC_WEBMENTION_TOKEN || ''
- },
-
- // <---- 评论插件
-
- // ----> 站点统计
- ANALYTICS_VERCEL: process.env.NEXT_PUBLIC_ANALYTICS_VERCEL || false, // vercel自带的统计 https://vercel.com/docs/concepts/analytics/quickstart https://github.com/tangly1024/NotionNext/issues/897
- ANALYTICS_BUSUANZI_ENABLE: process.env.NEXT_PUBLIC_ANALYTICS_BUSUANZI_ENABLE || true, // 展示网站阅读量、访问数 see http://busuanzi.ibruce.info/
- ANALYTICS_BAIDU_ID: process.env.NEXT_PUBLIC_ANALYTICS_BAIDU_ID || '', // e.g 只需要填写百度统计的id,[baidu_id] -> https://hm.baidu.com/hm.js?[baidu_id]
- ANALYTICS_CNZZ_ID: process.env.NEXT_PUBLIC_ANALYTICS_CNZZ_ID || '', // 只需要填写站长统计的id, [cnzz_id] -> https://s9.cnzz.com/z_stat.php?id=[cnzz_id]&web_id=[cnzz_id]
- ANALYTICS_GOOGLE_ID: process.env.NEXT_PUBLIC_ANALYTICS_GOOGLE_ID || '', // 谷歌Analytics的id e.g: G-XXXXXXXXXX
-
- ANALYTICS_ACKEE_TRACKER:
+
+ COMMENT_WALINE_SERVER_URL: process.env.NEXT_PUBLIC_WALINE_SERVER_URL || '', // 请配置完整的Waline评论地址 例如 hhttps://preview-waline.tangly1024.com @see https://waline.js.org/guide/get-started.html
+ COMMENT_WALINE_RECENT: process.env.NEXT_PUBLIC_WALINE_RECENT || false, // 最新评论
+
+ // 此评论系统基于WebMention,细节可参考https://webmention.io
+ // 它是一个基于IndieWeb理念的开放式评论系统,下方COMMENT_WEBMENTION包含的属性皆需配置:
+ // ENABLE: 是否开启
+ // AUTH: Webmention使用的IndieLogin,可使用Twitter或Github个人页面连结
+ // HOSTNAME: Webmention绑定之网域,通常即为本站网址
+ // TWITTER_USERNAME: 评论显示区域需要的资讯
+ // TOKEN: Webmention的API token
+ COMMENT_WEBMENTION: {
+ ENABLE: process.env.NEXT_PUBLIC_WEBMENTION_ENABLE || false,
+ AUTH: process.env.NEXT_PUBLIC_WEBMENTION_AUTH || '',
+ HOSTNAME: process.env.NEXT_PUBLIC_WEBMENTION_HOSTNAME || '',
+ TWITTER_USERNAME: process.env.NEXT_PUBLIC_TWITTER_USERNAME || '',
+ TOKEN: process.env.NEXT_PUBLIC_WEBMENTION_TOKEN || ''
+ },
+
+ // <---- 评论插件
+
+ // ----> 站点统计
+ ANALYTICS_VERCEL: process.env.NEXT_PUBLIC_ANALYTICS_VERCEL || false, // vercel自带的统计 https://vercel.com/docs/concepts/analytics/quickstart https://github.com/tangly1024/NotionNext/issues/897
+ ANALYTICS_BUSUANZI_ENABLE: process.env.NEXT_PUBLIC_ANALYTICS_BUSUANZI_ENABLE || true, // 展示网站阅读量、访问数 see http://busuanzi.ibruce.info/
+ ANALYTICS_BAIDU_ID: process.env.NEXT_PUBLIC_ANALYTICS_BAIDU_ID || '', // e.g 只需要填写百度统计的id,[baidu_id] -> https://hm.baidu.com/hm.js?[baidu_id]
+ ANALYTICS_CNZZ_ID: process.env.NEXT_PUBLIC_ANALYTICS_CNZZ_ID || '', // 只需要填写站长统计的id, [cnzz_id] -> https://s9.cnzz.com/z_stat.php?id=[cnzz_id]&web_id=[cnzz_id]
+ ANALYTICS_GOOGLE_ID: process.env.NEXT_PUBLIC_ANALYTICS_GOOGLE_ID || '', // 谷歌Analytics的id e.g: G-XXXXXXXXXX
+
+ ANALYTICS_ACKEE_TRACKER:
process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_TRACKER || '', // e.g 'https://ackee.tangly1024.net/tracker.js'
- ANALYTICS_ACKEE_DATA_SERVER:
+ ANALYTICS_ACKEE_DATA_SERVER:
process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DATA_SERVER || '', // e.g https://ackee.tangly1024.net , don't end with a slash
- ANALYTICS_ACKEE_DOMAIN_ID:
+ ANALYTICS_ACKEE_DOMAIN_ID:
process.env.NEXT_PUBLIC_ANALYTICS_ACKEE_DOMAIN_ID || '', // e.g '0e2257a8-54d4-4847-91a1-0311ea48cc7b'
-
- SEO_GOOGLE_SITE_VERIFICATION:
+
+ SEO_GOOGLE_SITE_VERIFICATION:
process.env.NEXT_PUBLIC_SEO_GOOGLE_SITE_VERIFICATION || '', // Remove the value or replace it with your own google site verification code
-
- SEO_BAIDU_SITE_VERIFICATION:
+
+ SEO_BAIDU_SITE_VERIFICATION:
process.env.NEXT_PUBLIC_SEO_BAIDU_SITE_VERIFICATION || '', // Remove the value or replace it with your own google site verification code
-
- // <---- 站点统计
-
- // 谷歌广告
- ADSENSE_GOOGLE_ID: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_ID || '', // 谷歌广告ID e.g ca-pub-xxxxxxxxxxxxxxxx
- ADSENSE_GOOGLE_TEST: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_TEST || false, // 谷歌广告ID测试模式,这种模式获取假的测试广告,用于开发 https://www.tangly1024.com/article/local-dev-google-adsense
- ADSENSE_GOOGLE_SLOT_IN_ARTICLE: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_IN_ARTICLE || '3806269138', // Google AdScene>广告>按单元广告>新建文章内嵌广告 粘贴html代码中的data-ad-slot值
- ADSENSE_GOOGLE_SLOT_FLOW: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_FLOW || '1510444138', // Google AdScene>广告>按单元广告>新建信息流广告
- ADSENSE_GOOGLE_SLOT_NATIVE: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_NATIVE || '4980048999', // Google AdScene>广告>按单元广告>新建原生广告
- ADSENSE_GOOGLE_SLOT_AUTO: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_AUTO || '8807314373', // Google AdScene>广告>按单元广告>新建展示广告 (自动广告)
-
- // 自定义配置notion数据库字段名
- NOTION_PROPERTY_NAME: {
- password: process.env.NEXT_PUBLIC_NOTION_PROPERTY_PASSWORD || 'password',
- type: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE || 'type', // 文章类型,
- type_post: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_POST || 'Post', // 当type文章类型与此值相同时,为博文。
- type_page: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_PAGE || 'Page', // 当type文章类型与此值相同时,为单页。
- type_notice:
+
+ // <---- 站点统计
+
+ // 谷歌广告
+ ADSENSE_GOOGLE_ID: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_ID || '', // 谷歌广告ID e.g ca-pub-xxxxxxxxxxxxxxxx
+ ADSENSE_GOOGLE_TEST: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_TEST || false, // 谷歌广告ID测试模式,这种模式获取假的测试广告,用于开发 https://www.tangly1024.com/article/local-dev-google-adsense
+ ADSENSE_GOOGLE_SLOT_IN_ARTICLE: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_IN_ARTICLE || '3806269138', // Google AdScene>广告>按单元广告>新建文章内嵌广告 粘贴html代码中的data-ad-slot值
+ ADSENSE_GOOGLE_SLOT_FLOW: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_FLOW || '1510444138', // Google AdScene>广告>按单元广告>新建信息流广告
+ ADSENSE_GOOGLE_SLOT_NATIVE: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_NATIVE || '4980048999', // Google AdScene>广告>按单元广告>新建原生广告
+ ADSENSE_GOOGLE_SLOT_AUTO: process.env.NEXT_PUBLIC_ADSENSE_GOOGLE_SLOT_AUTO || '8807314373', // Google AdScene>广告>按单元广告>新建展示广告 (自动广告)
+
+ // 自定义配置notion数据库字段名
+ NOTION_PROPERTY_NAME: {
+ password: process.env.NEXT_PUBLIC_NOTION_PROPERTY_PASSWORD || 'password',
+ type: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE || 'type', // 文章类型,
+ type_post: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_POST || 'Post', // 当type文章类型与此值相同时,为博文。
+ type_page: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_PAGE || 'Page', // 当type文章类型与此值相同时,为单页。
+ type_notice:
process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_NOTICE || 'Notice', // 当type文章类型与此值相同时,为公告。
- type_menu: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_MENU || 'Menu', // 当type文章类型与此值相同时,为菜单。
- type_sub_menu:
+ type_menu: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_MENU || 'Menu', // 当type文章类型与此值相同时,为菜单。
+ type_sub_menu:
process.env.NEXT_PUBLIC_NOTION_PROPERTY_TYPE_SUB_MENU || 'SubMenu', // 当type文章类型与此值相同时,为子菜单。
- title: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TITLE || 'title', // 文章标题
- status: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS || 'status',
- status_publish:
+ title: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TITLE || 'title', // 文章标题
+ status: process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS || 'status',
+ status_publish:
process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_PUBLISH || 'Published', // 当status状态值与此相同时为发布,可以为中文
- status_invisible:
+ status_invisible:
process.env.NEXT_PUBLIC_NOTION_PROPERTY_STATUS_INVISIBLE || 'Invisible', // 当status状态值与此相同时为隐藏发布,可以为中文 , 除此之外其他页面状态不会显示在博客上
- summary: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY || 'summary',
- slug: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SLUG || 'slug',
- category: process.env.NEXT_PUBLIC_NOTION_PROPERTY_CATEGORY || 'category',
- date: process.env.NEXT_PUBLIC_NOTION_PROPERTY_DATE || 'date',
- tags: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TAGS || 'tags',
- icon: process.env.NEXT_PUBLIC_NOTION_PROPERTY_ICON || 'icon'
- },
-
- // RSS订阅
- ENABLE_RSS: process.env.NEXT_PUBLIC_ENABLE_RSS || true, // 是否开启RSS订阅功能
- MAILCHIMP_LIST_ID: process.env.MAILCHIMP_LIST_ID || null, // 开启mailichimp邮件订阅 客户列表ID ,具体使用方法参阅文档
- MAILCHIMP_API_KEY: process.env.MAILCHIMP_API_KEY || null, // 开启mailichimp邮件订阅 APIkey
-
- // 作废配置
- AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
- TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖;此处请勿留空白,否则服务器无法编译
- HOME_BANNER_IMAGE:
+ summary: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SUMMARY || 'summary',
+ slug: process.env.NEXT_PUBLIC_NOTION_PROPERTY_SLUG || 'slug',
+ category: process.env.NEXT_PUBLIC_NOTION_PROPERTY_CATEGORY || 'category',
+ date: process.env.NEXT_PUBLIC_NOTION_PROPERTY_DATE || 'date',
+ tags: process.env.NEXT_PUBLIC_NOTION_PROPERTY_TAGS || 'tags',
+ icon: process.env.NEXT_PUBLIC_NOTION_PROPERTY_ICON || 'icon'
+ },
+
+ // RSS订阅
+ ENABLE_RSS: process.env.NEXT_PUBLIC_ENABLE_RSS || true, // 是否开启RSS订阅功能
+ MAILCHIMP_LIST_ID: process.env.MAILCHIMP_LIST_ID || null, // 开启mailichimp邮件订阅 客户列表ID ,具体使用方法参阅文档
+ MAILCHIMP_API_KEY: process.env.MAILCHIMP_API_KEY || null, // 开启mailichimp邮件订阅 APIkey
+
+ // 作废配置
+ AVATAR: process.env.NEXT_PUBLIC_AVATAR || '/avatar.svg', // 作者头像,被notion中的ICON覆盖。若无ICON则取public目录下的avatar.png
+ TITLE: process.env.NEXT_PUBLIC_TITLE || 'NotionNext BLOG', // 站点标题 ,被notion中的页面标题覆盖;此处请勿留空白,否则服务器无法编译
+ HOME_BANNER_IMAGE:
process.env.NEXT_PUBLIC_HOME_BANNER_IMAGE || '/bg_image.jpg', // 首页背景大图, 会被notion中的封面图覆盖,若无封面图则会使用代码中的 /public/bg_image.jpg 文件
- DESCRIPTION:
+ DESCRIPTION:
process.env.NEXT_PUBLIC_DESCRIPTION || '这是一个由NotionNext生成的站点', // 站点描述,被notion中的页面描述覆盖
-
- // 网站图片
- IMG_LAZY_LOAD_PLACEHOLDER: process.env.NEXT_PUBLIC_IMG_LAZY_LOAD_PLACEHOLDER || 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', // 懒加载占位图片地址,支持base64或url
- IMG_URL_TYPE: process.env.NEXT_PUBLIC_IMG_TYPE || 'Notion', // 此配置已失效,请勿使用;AMAZON方案不再支持,仅支持Notion方案。 ['Notion','AMAZON'] 站点图片前缀 默认 Notion:(https://notion.so/images/xx) , AMAZON(https://s3.us-west-2.amazonaws.com/xxx)
- IMG_SHADOW: process.env.NEXT_PUBLIC_IMG_SHADOW || false, // 文章图片是否自动添加阴影
-
- // 开发相关
- NOTION_ACCESS_TOKEN: process.env.NOTION_ACCESS_TOKEN || '', // Useful if you prefer not to make your database public
- DEBUG: process.env.NEXT_PUBLIC_DEBUG || false, // 是否显示调试按钮
- ENABLE_CACHE: process.env.ENABLE_CACHE || false, // 开启缓存会将Notion数据缓存在内存中,通常在开发调试中使用,正式部署开启此功能意义不大。
- isProd: process.env.VERCEL_ENV === 'production', // distinguish between development and production environment (ref: https://vercel.com/docs/environment-variables#system-environment-variables) isProd: process.env.VERCEL_ENV === 'production' // distinguish between development and production environment (ref: https://vercel.com/docs/environment-variables#system-environment-variables)
- VERSION: process.env.NEXT_PUBLIC_VERSION // 版本号
- }
-
- module.exports = BLOG
\ No newline at end of file
+
+ // 网站图片
+ IMG_LAZY_LOAD_PLACEHOLDER: process.env.NEXT_PUBLIC_IMG_LAZY_LOAD_PLACEHOLDER || 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', // 懒加载占位图片地址,支持base64或url
+ IMG_URL_TYPE: process.env.NEXT_PUBLIC_IMG_TYPE || 'Notion', // 此配置已失效,请勿使用;AMAZON方案不再支持,仅支持Notion方案。 ['Notion','AMAZON'] 站点图片前缀 默认 Notion:(https://notion.so/images/xx) , AMAZON(https://s3.us-west-2.amazonaws.com/xxx)
+ IMG_SHADOW: process.env.NEXT_PUBLIC_IMG_SHADOW || false, // 文章图片是否自动添加阴影
+
+ // 开发相关
+ NOTION_ACCESS_TOKEN: process.env.NOTION_ACCESS_TOKEN || '', // Useful if you prefer not to make your database public
+ DEBUG: process.env.NEXT_PUBLIC_DEBUG || false, // 是否显示调试按钮
+ ENABLE_CACHE: process.env.ENABLE_CACHE || false, // 开启缓存会将Notion数据缓存在内存中,通常在开发调试中使用,正式部署开启此功能意义不大。
+ isProd: process.env.VERCEL_ENV === 'production', // distinguish between development and production environment (ref: https://vercel.com/docs/environment-variables#system-environment-variables) isProd: process.env.VERCEL_ENV === 'production' // distinguish between development and production environment (ref: https://vercel.com/docs/environment-variables#system-environment-variables)
+ VERSION: process.env.NEXT_PUBLIC_VERSION // 版本号
+}
+
+module.exports = BLOG
diff --git a/themes/hexo/components/Hero.js b/themes/hexo/components/Hero.js
index c07a401e..ad28362f 100644
--- a/themes/hexo/components/Hero.js
+++ b/themes/hexo/components/Hero.js
@@ -68,7 +68,7 @@ const Hero = props => {
{/* 滚动按钮 */}
-
{locale.COMMON.START_READING}
+
{CONFIG.SHOW_START_READING && locale.COMMON.START_READING}
diff --git a/themes/hexo/config.js b/themes/hexo/config.js
index b24d4fd1..262e7bfe 100644
--- a/themes/hexo/config.js
+++ b/themes/hexo/config.js
@@ -6,6 +6,8 @@ const CONFIG = {
HOME_NAV_BUTTONS: true, // 首页是否显示分类大图标按钮
// 已知未修复bug, 在移动端开启true后会加载不出图片; 暂时建议设置为false。
HOME_NAV_BACKGROUND_IMG_FIXED: false, // 首页背景图滚动时是否固定,true 则滚动时图片不懂动; false则随鼠标滚动 ;
+ // 是否显示开始阅读按钮
+ SHOW_START_READING: true,
// 菜单配置
MENU_INDEX: true, // 显示首页
diff --git a/themes/matery/components/Hero.js b/themes/matery/components/Hero.js
index 6c94cb1c..a7157b68 100644
--- a/themes/matery/components/Hero.js
+++ b/themes/matery/components/Hero.js
@@ -61,7 +61,7 @@ const Hero = props => {
{/* 滚动按钮 */}
{ window.scrollTo({ top: wrapperTop, behavior: 'smooth' }) }}
className="mt-12 border cursor-pointer w-40 text-center pt-4 pb-3 text-md text-white hover:bg-orange-600 duration-300 rounded-3xl z-40">
- {locale.COMMON.START_READING}
+ {CONFIG.SHOW_START_READING && locale.COMMON.START_READING}
diff --git a/themes/matery/config.js b/themes/matery/config.js
index a772b297..2878e51b 100644
--- a/themes/matery/config.js
+++ b/themes/matery/config.js
@@ -6,6 +6,9 @@ const CONFIG = {
HOME_NAV_BUTTONS: true, // 首页是否显示分类大图标按钮
HOME_NAV_BACKGROUND_IMG_FIXED: false, // 首页背景图滚动时是否固定,true 则滚动时图片不懂; false则随鼠标滚动
+ // 是否显示开始阅读按钮
+ SHOW_START_READING: true,
+
// 菜单配置
MENU_CATEGORY: true, // 显示分类
MENU_TAG: true, // 显示标签
From 298f91db5023e481f622fb49587eff54199b23bf Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 16:30:48 +0800
Subject: [PATCH 10/39] config.js
---
blog.config.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/blog.config.js b/blog.config.js
index 61a78a80..60c5d16d 100644
--- a/blog.config.js
+++ b/blog.config.js
@@ -1,4 +1,4 @@
-// 注: process.env.XX是Vercel的环境变量,配置方式见:https://docs.tangly1024.com/zh/features/personality
+// 注: process.env.XX是Vercel的环境变量,配置方式见:https://docs.tangly1024.com/article/how-to-config-notion-next#c4768010ae7d44609b744e79e2f9959a
const BLOG = {
// Important page_id!!!Duplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
NOTION_PAGE_ID:
From af2a5b39280c023975896587968b396e0974c399 Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 17:00:02 +0800
Subject: [PATCH 11/39] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=94=A8=E6=88=B7?=
=?UTF-8?q?=E6=B7=B1=E8=89=B2=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
lib/global.js | 2 +-
themes/theme.js | 24 +++++++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/lib/global.js b/lib/global.js
index 9cafd304..04b40cbe 100644
--- a/lib/global.js
+++ b/lib/global.js
@@ -24,7 +24,7 @@ export function GlobalContextProvider({ children }) {
useEffect(() => {
initLocale(lang, locale, updateLang, updateLocale)
- initDarkMode(isDarkMode, updateDarkMode)
+ initDarkMode(updateDarkMode)
initTheme()
}, [])
diff --git a/themes/theme.js b/themes/theme.js
index 468199d2..a34b2f52 100644
--- a/themes/theme.js
+++ b/themes/theme.js
@@ -60,16 +60,26 @@ export const getLayoutNameByPath = (path) => {
* @param updateDarkMode 更改主题ChangeState函数
* @description 读取cookie中存的用户主题
*/
-export const initDarkMode = (isDarkMode, updateDarkMode) => {
+export const initDarkMode = (updateDarkMode) => {
+ console.log('检查深色模式')
+ // 查看用户设备浏览器是否深色模型
+ let newDarkMode = isPreferDark()
+
+ // 查看cookie中是否用户强制设置深色模式
+ const cookieDarkMode = loadDarkModeFromCookies()
+ if (cookieDarkMode) {
+ newDarkMode = JSON.parse(cookieDarkMode)
+ }
+
+ // url查询条件中是否深色模式
const queryMode = getQueryVariable('mode')
if (queryMode) {
- isDarkMode = queryMode === 'dark'
- } else if (!isDarkMode) {
- isDarkMode = isPreferDark()
+ newDarkMode = queryMode === 'dark'
}
- updateDarkMode(isDarkMode)
- saveDarkModeToCookies(isDarkMode)
- document.getElementsByTagName('html')[0].setAttribute('class', isDarkMode ? 'dark' : 'light')
+
+ updateDarkMode(newDarkMode)
+ saveDarkModeToCookies(newDarkMode)
+ document.getElementsByTagName('html')[0].setAttribute('class', newDarkMode ? 'dark' : 'light')
}
/**
From a29271af3193076de4ccedf280c06e7849aa63eb Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 17:18:52 +0800
Subject: [PATCH 12/39] fix/gitbook-nav-scroll-height
---
themes/gitbook/index.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/themes/gitbook/index.js b/themes/gitbook/index.js
index 2b034195..798e09d0 100644
--- a/themes/gitbook/index.js
+++ b/themes/gitbook/index.js
@@ -72,8 +72,10 @@ const LayoutBase = (props) => {
{slotLeft}
- {/* 所有文章列表 */}
-
+
+ {/* 所有文章列表 */}
+
+
From beeed7f632c5a6ab015a3c4503613335965ec5e9 Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 20:42:35 +0800
Subject: [PATCH 13/39] =?UTF-8?q?=E5=90=88=E5=B9=B6CommenHead=EF=BC=9B=20?=
=?UTF-8?q?=E8=B0=83=E6=95=B4Algolia=E6=A0=B7=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/AlgoliaSearchModal.js | 153 ++++++++++++++++++++++----
components/Mark.js | 5 +-
lib/global.js | 9 +-
pages/_app.js | 5 +-
themes/example/index.js | 5 +-
themes/fukasawa/index.js | 4 +-
themes/gitbook/index.js | 4 +-
themes/heo/components/NavBar.js | 4 +-
themes/heo/components/SearchButton.js | 4 +-
themes/heo/index.js | 4 +-
themes/medium/index.js | 5 +-
themes/next/index.js | 6 +-
themes/nobelium/index.js | 4 +-
themes/plog/index.js | 7 +-
themes/simple/index.js | 4 +-
themes/theme.js | 1 -
16 files changed, 156 insertions(+), 68 deletions(-)
diff --git a/components/AlgoliaSearchModal.js b/components/AlgoliaSearchModal.js
index 32d0401d..ff372733 100644
--- a/components/AlgoliaSearchModal.js
+++ b/components/AlgoliaSearchModal.js
@@ -1,7 +1,10 @@
-import { useState, useImperativeHandle } from 'react'
+import { useState, useImperativeHandle, useRef } from 'react'
import BLOG from '@/blog.config'
import algoliasearch from 'algoliasearch'
import replaceSearchResult from '@/components/Mark'
+import Link from 'next/link'
+import { useGlobal } from '@/lib/global'
+import throttle from 'lodash/throttle'
/**
* 结合 Algolia 实现的弹出式搜索框
@@ -11,6 +14,12 @@ import replaceSearchResult from '@/components/Mark'
export default function AlgoliaSearchModal({ cRef }) {
const [searchResults, setSearchResults] = useState([])
const [isModalOpen, setIsModalOpen] = useState(false)
+ const [page, setPage] = useState(0)
+ const [keyword, setKeyword] = useState(null)
+ const [totalPage, setTotalPage] = useState(0)
+ const [totalHit, setTotalHit] = useState(0)
+ const [useTime, setUseTime] = useState(0)
+
/**
* 对外暴露方法
*/
@@ -22,40 +31,80 @@ export default function AlgoliaSearchModal({ cRef }) {
}
})
- if (!BLOG.ALGOLIA_APP_ID) {
- return <>>
- }
-
const client = algoliasearch(BLOG.ALGOLIA_APP_ID, BLOG.ALGOLIA_SEARCH_ONLY_APP_KEY)
const index = client.initIndex(BLOG.ALGOLIA_INDEX)
- const handleSearch = async (query) => {
+ /**
+ * 搜索
+ * @param {*} query
+ */
+ const handleSearch = async (query, page) => {
+ setKeyword(query)
+ setPage(page)
+ setSearchResults([])
+ setUseTime(0)
+ setTotalPage(0)
+ setTotalHit(0)
+ if (!query || query === '') {
+ return
+ }
+
try {
- const res = await index.search(query)
- console.log(res)
- const { hits } = res
+ const res = await index.search(query, { page, hitsPerPage: 10 })
+ const { hits, nbHits, nbPages, processingTimeMS } = res
+ setUseTime(processingTimeMS)
+ setTotalPage(nbPages)
+ setTotalHit(nbHits)
setSearchResults(hits)
+
const doms = document.getElementById('search-wrapper').getElementsByClassName('replace')
- replaceSearchResult({
- doms,
- search: query,
- target: {
- element: 'span',
- className: 'text-blue-600 border-b border-dashed'
- }
- })
+
+ setTimeout(() => {
+ replaceSearchResult({
+ doms,
+ search: query,
+ target: {
+ element: 'span',
+ className: 'text-blue-600 border-b border-dashed'
+ }
+ })
+ }, 150)
} catch (error) {
console.error('Algolia search error:', error)
}
}
+ const throttledHandleSearch = useRef(throttle(handleSearch, 300)) // 设置节流延迟时间
+
+ // 修改input的onChange事件处理函数
+ const handleInputChange = (e) => {
+ const query = e.target.value
+ throttledHandleSearch.current(query, 0)
+ }
+
+ /**
+ * 切换页码
+ * @param {*} page
+ */
+ const switchPage = (page) => {
+ throttledHandleSearch.current(keyword, page)
+ }
+
+ /**
+ * 关闭弹窗
+ */
const closeModal = () => {
setIsModalOpen(false)
}
+ if (!BLOG.ALGOLIA_APP_ID) {
+ return <>>
+ }
+
return (
-
- {/* 内容 */}
+
+
+ {/* 模态框 */}
@@ -63,12 +112,12 @@ export default function AlgoliaSearchModal({ cRef }) {
-
handleSearch(e.target.value)}
+
handleInputChange(e)}
className="bg-gray-50 dark:bg-gray-600 outline-blue-500 w-full px-4 my-2 py-1 mb-4 border rounded-md" />
{/* 标签组 */}
-
-
+
+
@@ -81,7 +130,9 @@ export default function AlgoliaSearchModal({ cRef }) {
))}
-
Algolia 提供搜索服务
+
+ {totalHit > 0 &&
共搜索到 {totalHit} 条结果,用时 {useTime} 毫秒
}
+ Algolia 提供搜索服务
{/* 遮罩 */}
@@ -90,3 +141,59 @@ export default function AlgoliaSearchModal({ cRef }) {
)
}
+
+/**
+ * 标签组
+ */
+function TagGroups(props) {
+ const { tagOptions } = useGlobal()
+ // 获取tagOptions数组前十个
+ const firstTenTags = tagOptions.slice(0, 10)
+
+ return
+}
+
+/**
+ * 分页
+ * @param {*} param0
+ */
+function Pagination(props) {
+ const { totalPage, page, switchPage } = props
+ if (totalPage <= 0) {
+ return <>>
+ }
+ const pagesElement = []
+
+ for (let i = 0; i < totalPage; i++) {
+ const selected = page === i
+ pagesElement.push(getPageElement(i, selected, switchPage))
+ }
+ return
+ {pagesElement.map(p => p)}
+
+}
+
+/**
+ * 获取分页按钮
+ * @param {*} i
+ * @param {*} selected
+ */
+function getPageElement(i, selected, switchPage) {
+ return
switchPage(i)} className={`${selected ? 'font-bold text-white bg-blue-600 rounded' : 'hover:text-blue-600 hover:font-bold'} text-center cursor-pointer w-6 h-6 `}>
+ {i + 1}
+
+}
diff --git a/components/Mark.js b/components/Mark.js
index 1defca32..ec2a7901 100644
--- a/components/Mark.js
+++ b/components/Mark.js
@@ -9,10 +9,7 @@ export default async function replaceSearchResult({ doms, search, target }) {
}
try {
- const url = await loadExternalResource('https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js', 'js')
- console.log('markjs 加载成功', url, window.Mark)
- console.log('------', doms)
-
+ await loadExternalResource('https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1/mark.min.js', 'js')
const Mark = window.Mark
if (doms instanceof HTMLCollection) {
for (const container of doms) {
diff --git a/lib/global.js b/lib/global.js
index 04b40cbe..0aba42d0 100644
--- a/lib/global.js
+++ b/lib/global.js
@@ -14,7 +14,9 @@ const GlobalContext = createContext()
* @returns {JSX.Element}
* @constructor
*/
-export function GlobalContextProvider({ children }) {
+export function GlobalContextProvider(props) {
+ console.log('global', props)
+ const { children, siteInfo, categoryOptions, tagOptions } = props
const router = useRouter()
const [lang, updateLang] = useState(BLOG.LANG) // 默认语言
const [locale, updateLocale] = useState(generateLocaleDict(BLOG.LANG)) // 默认语言
@@ -75,7 +77,10 @@ export function GlobalContextProvider({ children }) {
updateDarkMode,
theme,
setTheme,
- switchTheme
+ switchTheme,
+ siteInfo,
+ categoryOptions,
+ tagOptions
}}>
{children}
diff --git a/pages/_app.js b/pages/_app.js
index a6a11399..57c4047a 100644
--- a/pages/_app.js
+++ b/pages/_app.js
@@ -17,6 +17,7 @@ import dynamic from 'next/dynamic'
// 自定义样式css和js引入
import ExternalScript from '@/components/ExternalScript'
+import CommonHead from '@/components/CommonHead'
// 各种扩展插件 动画等
const ExternalPlugins = dynamic(() => import('@/components/ExternalPlugins'))
@@ -25,9 +26,11 @@ const MyApp = ({ Component, pageProps }) => {
useEffect(() => {
AOS.init()
}, [])
+ const { meta } = pageProps
return (
-
+
+
diff --git a/themes/example/index.js b/themes/example/index.js
index d14bc570..8dffec78 100644
--- a/themes/example/index.js
+++ b/themes/example/index.js
@@ -2,7 +2,6 @@
import BLOG from '@/blog.config'
import CONFIG from './config'
-import CommonHead from '@/components/CommonHead'
import { useEffect } from 'react'
import { Header } from './components/Header'
import { Nav } from './components/Nav'
@@ -36,7 +35,7 @@ import { Style } from './style'
* @constructor
*/
const LayoutBase = props => {
- const { children, meta, slotTop } = props
+ const { children, slotTop } = props
const { onLoading } = useGlobal()
// 增加一个状态以触发 Transition 组件的动画
@@ -49,8 +48,6 @@ const LayoutBase = props => {
return (
- {/* 网页SEO信息 */}
-
{/* 页头 */}
diff --git a/themes/fukasawa/index.js b/themes/fukasawa/index.js
index 52b55b5c..1e7705bd 100644
--- a/themes/fukasawa/index.js
+++ b/themes/fukasawa/index.js
@@ -1,7 +1,6 @@
'use client'
import CONFIG from './config'
-import CommonHead from '@/components/CommonHead'
import TopNav from './components/TopNav'
import AsideLeft from './components/AsideLeft'
import BLOG from '@/blog.config'
@@ -43,7 +42,7 @@ export const useFukasawaGlobal = () => useContext(ThemeGlobalFukasawa)
* @constructor
*/
const LayoutBase = (props) => {
- const { children, headerSlot, meta } = props
+ const { children, headerSlot } = props
const leftAreaSlot =
const { onLoading } = useGlobal()
@@ -66,7 +65,6 @@ const LayoutBase = (props) => {
-
diff --git a/themes/gitbook/index.js b/themes/gitbook/index.js
index 798e09d0..125b3423 100644
--- a/themes/gitbook/index.js
+++ b/themes/gitbook/index.js
@@ -4,7 +4,6 @@ import CONFIG from './config'
import { useRouter } from 'next/router'
import { useEffect, useState, createContext, useContext } from 'react'
import { isBrowser } from '@/lib/utils'
-import CommonHead from '@/components/CommonHead'
import Footer from './components/Footer'
import InfoCard from './components/InfoCard'
import RevolverMaps from './components/RevolverMaps'
@@ -43,7 +42,7 @@ export const useGitBookGlobal = () => useContext(ThemeGlobalGitbook)
* @constructor
*/
const LayoutBase = (props) => {
- const { children, meta, post, allNavPages, slotLeft, slotRight, slotTop } = props
+ const { children, post, allNavPages, slotLeft, slotRight, slotTop } = props
const { onLoading } = useGlobal()
const router = useRouter()
const [tocVisible, changeTocVisible] = useState(false)
@@ -58,7 +57,6 @@ const LayoutBase = (props) => {
return (
-
diff --git a/themes/heo/components/NavBar.js b/themes/heo/components/NavBar.js
index af69384a..cd1c205b 100644
--- a/themes/heo/components/NavBar.js
+++ b/themes/heo/components/NavBar.js
@@ -143,9 +143,9 @@ const NavBar = props => {
{/* 右侧固定 */}
-
+
-
+
{!JSON.parse(BLOG.THEME_SWITCH) &&
}
diff --git a/themes/heo/components/SearchButton.js b/themes/heo/components/SearchButton.js
index e23907a4..e9e253db 100644
--- a/themes/heo/components/SearchButton.js
+++ b/themes/heo/components/SearchButton.js
@@ -8,7 +8,7 @@ import { useRef } from 'react'
* 搜索按钮
* @returns
*/
-export default function SearchButton() {
+export default function SearchButton(props) {
const { locale } = useGlobal()
const router = useRouter()
const searchModal = useRef(null)
@@ -25,6 +25,6 @@ export default function SearchButton() {
-
+
>
}
diff --git a/themes/heo/index.js b/themes/heo/index.js
index 60b955b8..dea88fdf 100644
--- a/themes/heo/index.js
+++ b/themes/heo/index.js
@@ -39,12 +39,10 @@ import LazyImage from '@/components/LazyImage'
* @constructor
*/
const LayoutBase = props => {
- const { children, headerSlot, slotTop, slotRight, meta, siteInfo, className } = props
+ const { children, headerSlot, slotTop, slotRight, siteInfo, className } = props
return (
- {/* 网页SEO */}
-
{/* 顶部嵌入 导航栏,首页放hero,文章页放文章详情 */}
diff --git a/themes/medium/index.js b/themes/medium/index.js
index b57b8528..f9edb252 100644
--- a/themes/medium/index.js
+++ b/themes/medium/index.js
@@ -1,6 +1,5 @@
import CONFIG from './config'
-import CommonHead from '@/components/CommonHead'
import { useState, createContext, useContext, useEffect } from 'react'
import Footer from './components/Footer'
import InfoCard from './components/InfoCard'
@@ -48,7 +47,7 @@ export const useMediumGlobal = () => useContext(ThemeGlobalMedium)
* @constructor
*/
const LayoutBase = props => {
- const { children, meta, showInfoCard = true, slotRight, slotTop, siteInfo, notice } = props
+ const { children, showInfoCard = true, slotRight, slotTop, siteInfo, notice } = props
const { locale } = useGlobal()
const router = useRouter()
const [tocVisible, changeTocVisible] = useState(false)
@@ -56,8 +55,6 @@ const LayoutBase = props => {
return (
- {/* SEO相关 */}
-
{/* CSS样式 */}
diff --git a/themes/next/index.js b/themes/next/index.js
index 931c7de7..0ffcbd28 100644
--- a/themes/next/index.js
+++ b/themes/next/index.js
@@ -1,6 +1,4 @@
import CONFIG from './config'
-
-import CommonHead from '@/components/CommonHead'
import FloatDarkModeButton from './components/FloatDarkModeButton'
import Footer from './components/Footer'
import JumpToBottomButton from './components/JumpToBottomButton'
@@ -34,7 +32,7 @@ import replaceSearchResult from '@/components/Mark'
* @constructor
*/
const LayoutBase = (props) => {
- const { children, headerSlot, meta, floatSlot, rightAreaSlot, siteInfo } = props
+ const { children, headerSlot, floatSlot, rightAreaSlot, siteInfo } = props
const { onLoading } = useGlobal()
const targetRef = useRef(null)
const floatButtonGroup = useRef(null)
@@ -71,8 +69,6 @@ const LayoutBase = (props) => {
return (
- {/* SEO相关 */}
-
{/* 移动端顶部导航栏 */}
diff --git a/themes/nobelium/index.js b/themes/nobelium/index.js
index d9410924..6a9e7f32 100644
--- a/themes/nobelium/index.js
+++ b/themes/nobelium/index.js
@@ -1,6 +1,5 @@
import BLOG from '@/blog.config'
import CONFIG from './config'
-import CommonHead from '@/components/CommonHead'
import React, { useEffect, useState } from 'react'
import Nav from './components/Nav'
import { Footer } from './components/Footer'
@@ -32,7 +31,7 @@ import replaceSearchResult from '@/components/Mark'
* @constructor
*/
const LayoutBase = props => {
- const { children, meta, post, topSlot } = props
+ const { children, post, topSlot } = props
const fullWidth = post?.fullWidth ?? false
const { onLoading } = useGlobal()
@@ -40,7 +39,6 @@ const LayoutBase = props => {
return (
{/* SEO相关 */}
-
{/* 顶部导航栏 */}
diff --git a/themes/plog/index.js b/themes/plog/index.js
index d5f15608..bb9d4cf6 100644
--- a/themes/plog/index.js
+++ b/themes/plog/index.js
@@ -1,6 +1,5 @@
import CONFIG from './config'
-import CommonHead from '@/components/CommonHead'
-import React, { createContext, useContext, useEffect, useState } from 'react'
+import { createContext, useContext, useEffect, useState } from 'react'
import Header from './components/Nav'
import { useGlobal } from '@/lib/global'
@@ -35,7 +34,7 @@ export const usePlogGlobal = () => useContext(ThemeGlobalPlog)
* @constructor
*/
const LayoutBase = props => {
- const { children, meta, topSlot } = props
+ const { children, topSlot } = props
const { onLoading, updateDarkMode } = useGlobal()
const [showModal, setShowModal] = useState(false)
const [modalContent, setModalContent] = useState(null)
@@ -59,8 +58,6 @@ const LayoutBase = props => {
return (
- {/* SEO相关 */}
-
{/* 移动端顶部导航栏 */}
diff --git a/themes/simple/index.js b/themes/simple/index.js
index 04a4ba51..b88dce95 100644
--- a/themes/simple/index.js
+++ b/themes/simple/index.js
@@ -12,7 +12,6 @@ import ArticleAround from './components/ArticleAround'
import ShareBar from '@/components/ShareBar'
import { AdSlot } from '@/components/GoogleAdsense'
import Link from 'next/link'
-import CommonHead from '@/components/CommonHead'
import { TopBar } from './components/TopBar'
import { Header } from './components/Header'
import { NavBar } from './components/NavBar'
@@ -33,7 +32,7 @@ import replaceSearchResult from '@/components/Mark'
* @returns
*/
const LayoutBase = props => {
- const { children, meta, slotTop } = props
+ const { children, slotTop } = props
const { onLoading } = useGlobal()
if (isBrowser()) {
@@ -41,7 +40,6 @@ const LayoutBase = props => {
}
return (
-
{CONFIG.TOP_BAR &&
}
diff --git a/themes/theme.js b/themes/theme.js
index a34b2f52..f03f3fe6 100644
--- a/themes/theme.js
+++ b/themes/theme.js
@@ -61,7 +61,6 @@ export const getLayoutNameByPath = (path) => {
* @description 读取cookie中存的用户主题
*/
export const initDarkMode = (updateDarkMode) => {
- console.log('检查深色模式')
// 查看用户设备浏览器是否深色模型
let newDarkMode = isPreferDark()
From e1976aaf3e92cb68a2598563b00191b95a6532c9 Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Fri, 28 Jul 2023 20:45:46 +0800
Subject: [PATCH 14/39] =?UTF-8?q?=E5=87=8F=E5=B0=91=E6=97=A5=E5=BF=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components/DebugPanel.js | 1 -
components/Gitalk.js | 6 ++----
components/GoogleAdsense.js | 1 -
components/PrismMac.js | 3 +--
components/TwikooCommentCounter.js | 1 -
components/ValineComponent.js | 5 ++---
lib/global.js | 1 -
themes/medium/components/RevolverMaps.js | 2 +-
8 files changed, 6 insertions(+), 14 deletions(-)
diff --git a/components/DebugPanel.js b/components/DebugPanel.js
index 053962b3..026b5ee0 100644
--- a/components/DebugPanel.js
+++ b/components/DebugPanel.js
@@ -32,7 +32,6 @@ const DebugPanel = () => {
}
function handleUpdateDebugTheme(newTheme) {
- console.log('切换主题', newTheme)
const query = { ...router.query, theme: newTheme }
router.push({ pathname: router.pathname, query })
}
diff --git a/components/Gitalk.js b/components/Gitalk.js
index 166eb8c7..4df0c65d 100644
--- a/components/Gitalk.js
+++ b/components/Gitalk.js
@@ -16,10 +16,8 @@ const Gitalk = ({ frontMatter }) => {
// distractionFreeMode: JSON.parse(BLOG.COMMENT_GITALK_DISTRACTION_FREE_MODE)
// }} />
const loadGitalk = async() => {
- const css = await loadExternalResource(BLOG.COMMENT_GITALK_CSS_CDN_URL, 'css')
- const js = await loadExternalResource(BLOG.COMMENT_GITALK_JS_CDN_URL, 'js')
-
- console.log('gitalk 加载成功', css, js)
+ await loadExternalResource(BLOG.COMMENT_GITALK_CSS_CDN_URL, 'css')
+ await loadExternalResource(BLOG.COMMENT_GITALK_JS_CDN_URL, 'js')
const Gitalk = window.Gitalk
const gitalk = new Gitalk({
diff --git a/components/GoogleAdsense.js b/components/GoogleAdsense.js
index 9cdaa406..22fca879 100644
--- a/components/GoogleAdsense.js
+++ b/components/GoogleAdsense.js
@@ -17,7 +17,6 @@ export default function GoogleAdsense() {
setTimeout(() => {
const ads = document.getElementsByClassName('adsbygoogle')
const adsbygoogle = window.adsbygoogle
- console.log('google-ads', adsbygoogle)
if (ads.length > 0) {
for (let i = 0; i <= ads.length; i++) {
try {
diff --git a/components/PrismMac.js b/components/PrismMac.js
index b37ba503..172c6ceb 100644
--- a/components/PrismMac.js
+++ b/components/PrismMac.js
@@ -140,8 +140,8 @@ const renderMermaid = async() => {
}
if (needLoad) {
loadExternalResource(BLOG.MERMAID_CDN, 'js').then(url => {
- // console.log('mermaid加载成功', url, mermaid)
const mermaid = window.mermaid
+ console.log('mermaid加载成功', url, mermaid)
mermaid.contentLoaded()
})
}
@@ -216,7 +216,6 @@ const fixCodeLineStyle = () => {
setTimeout(() => {
const preCodes = document.querySelectorAll('pre.notion-code')
for (const preCode of preCodes) {
- // console.log('code', preCode)
Prism.plugins.lineNumbers.resize(preCode)
}
}, 10)
diff --git a/components/TwikooCommentCounter.js b/components/TwikooCommentCounter.js
index b3b54ca3..87c16aaf 100644
--- a/components/TwikooCommentCounter.js
+++ b/components/TwikooCommentCounter.js
@@ -27,7 +27,6 @@ const TwikooCommentCounter = (props) => {
urls: posts?.map(post => post.slug), // 不包含协议、域名、参数的文章路径列表,必传参数
includeReply: true // 评论数是否包括回复,默认:false
}).then(function (res) {
- // console.log('查询', res)
commentsData = res
updateCommentCount()
}).catch(function (err) {
diff --git a/components/ValineComponent.js b/components/ValineComponent.js
index 359cff6d..3a7464b3 100644
--- a/components/ValineComponent.js
+++ b/components/ValineComponent.js
@@ -5,8 +5,8 @@ import { useEffect } from 'react'
const ValineComponent = ({ path }) => {
const loadValine = async () => {
try {
- const url = await loadExternalResource(BLOG.COMMENT_VALINE_CDN, 'js')
- console.log('valine 加载成功', url)
+ await loadExternalResource(BLOG.COMMENT_VALINE_CDN, 'js')
+ // console.log('valine 加载成功', url)
const Valine = window.Valine
// eslint-disable-next-line no-unused-vars
const valine = new Valine({
@@ -21,7 +21,6 @@ const ValineComponent = ({ path }) => {
serverURLs: BLOG.COMMENT_VALINE_SERVER_URLS,
visitor: true
})
- console.log('初始化valine成功')
} catch (error) {
console.error('twikoo 加载失败', error)
}
diff --git a/lib/global.js b/lib/global.js
index 0aba42d0..04d0176e 100644
--- a/lib/global.js
+++ b/lib/global.js
@@ -15,7 +15,6 @@ const GlobalContext = createContext()
* @constructor
*/
export function GlobalContextProvider(props) {
- console.log('global', props)
const { children, siteInfo, categoryOptions, tagOptions } = props
const router = useRouter()
const [lang, updateLang] = useState(BLOG.LANG) // 默认语言
diff --git a/themes/medium/components/RevolverMaps.js b/themes/medium/components/RevolverMaps.js
index d839d85d..a65fc4cf 100644
--- a/themes/medium/components/RevolverMaps.js
+++ b/themes/medium/components/RevolverMaps.js
@@ -16,7 +16,7 @@ function initRevolverMaps () {
Promise.all([
loadExternalResource('https://rf.revolvermaps.com/0/0/8.js?i=5jnp1havmh9&m=0&c=ff0000&cr1=ffffff&f=arial&l=33')
]).then(() => {
- console.log('地图加载完成')
+ // console.log('地图加载完成')
})
}
}
From c592651dc4ff66773b978d54850d067196462812 Mon Sep 17 00:00:00 2001
From: tangly1024
Date: Sat, 29 Jul 2023 11:39:53 +0800
Subject: [PATCH 15/39] fix/build
---
components/AlgoliaSearchModal.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/components/AlgoliaSearchModal.js b/components/AlgoliaSearchModal.js
index ff372733..7725689a 100644
--- a/components/AlgoliaSearchModal.js
+++ b/components/AlgoliaSearchModal.js
@@ -148,7 +148,7 @@ export default function AlgoliaSearchModal({ cRef }) {
function TagGroups(props) {
const { tagOptions } = useGlobal()
// 获取tagOptions数组前十个
- const firstTenTags = tagOptions.slice(0, 10)
+ const firstTenTags = tagOptions?.slice(0, 10)
return