@@ -37,14 +37,17 @@ const BLOG = {
37
37
38
38
BLOG_FAVICON : process . env . NEXT_PUBLIC_FAVICON || '/favicon.png' , // blog favicon 配置, 默认使用 /public/favicon.ico,支持在线图片,如 https://img.imesong.com/favicon.png
39
39
40
+ IMAGE_COMPRESS_WIDTH : process . env . NEXT_PUBLIC_IMAGE_COMPRESS_WIDTH || 800 , // 图片压缩宽度默认值,作用于博客封面和文章内容 越小加载图片越快
41
+ IMAGE_ZOOM_IN_WIDTH : process . env . NEXT_PUBLIC_IMAGE_ZOOM_IN_WIDTH || 1200 , // 文章图片点击放大后的画质宽度,不代表在网页中的实际展示宽度
40
42
RANDOM_IMAGE_URL : process . env . NEXT_PUBLIC_RANDOM_IMAGE_URL || '' , // 随机图片API,如果未配置下面的关键字,主页封面,头像,文章封面图都会被替换为随机图片
41
43
RANDOM_IMAGE_REPLACE_TEXT : process . env . NEXT_PUBLIC_RANDOM_IMAGE_NOT_REPLACE_TEXT || 'images.unsplash.com' , // 触发替换图片的 url 关键字(多个支持用英文逗号分开),只有图片地址中包含此关键字才会替换为上方随机图片url
42
44
// eg: images.unsplash.com(notion图床的所有图片都会替换),如果你在 notion 里已经添加了一个随机图片 url,恰巧那个服务跑路或者挂掉,想一键切换所有配图可以将该 url 配置在这里
43
45
// 默认下会将你上传到 notion的主页封面图和头像也给替换,建议将主页封面图和头像放在其他图床,在 notion 里配置 link 即可。
44
46
45
47
// START ************网站字体*****************
46
-
47
- FONT_STYLE : process . env . NEXT_PUBLIC_FONT_STYLE || 'font-sans' , // ['font-serif','font-sans'] 两种可选,分别是衬线和无衬线: 参考 https://www.jianshu.com/p/55e410bd2115
48
+ // ['font-serif','font-sans'] 两种可选,分别是衬线和无衬线: 参考 https://www.jianshu.com/p/55e410bd2115
49
+ // 后面空格隔开的font-light的字体粗细,留空是默认粗细;参考 https://www.tailwindcss.cn/docs/font-weight
50
+ FONT_STYLE : process . env . NEXT_PUBLIC_FONT_STYLE || 'font-sans font-light' ,
48
51
// 字体CSS 例如 https://npm.elemecdn.com/[email protected] /style.css
49
52
FONT_URL : [
50
53
// 'https://npm.elemecdn.com/[email protected] /style.css',
@@ -88,8 +91,33 @@ const BLOG = {
88
91
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
89
92
90
93
// END ************网站字体*****************
94
+
95
+ // 路径和组件映射,不同路径分别展示主题的什么组件
96
+ LAYOUT_MAPPINGS : {
97
+ '-1' : 'LayoutBase' ,
98
+ '/' : 'LayoutIndex' ,
99
+ '/archive' : 'LayoutArchive' ,
100
+ '/page/[page]' : 'LayoutPostList' ,
101
+ '/category/[category]' : 'LayoutPostList' ,
102
+ '/category/[category]/page/[page]' : 'LayoutPostList' ,
103
+ '/tag/[tag]' : 'LayoutPostList' ,
104
+ '/tag/[tag]/page/[page]' : 'LayoutPostList' ,
105
+ '/search' : 'LayoutSearch' ,
106
+ '/search/[keyword]' : 'LayoutSearch' ,
107
+ '/search/[keyword]/page/[page]' : 'LayoutSearch' ,
108
+ '/404' : 'Layout404' ,
109
+ '/tag' : 'LayoutTagIndex' ,
110
+ '/category' : 'LayoutCategoryIndex' ,
111
+ '/[prefix]' : 'LayoutSlug' ,
112
+ '/[prefix]/[slug]' : 'LayoutSlug' ,
113
+ '/[prefix]/[slug]/[...suffix]' : 'LayoutSlug' ,
114
+ '/signin' : 'LayoutSignIn' ,
115
+ '/signup' : 'LayoutSignUp'
116
+ } ,
117
+
91
118
CAN_COPY : process . env . NEXT_PUBLIC_CAN_COPY || true , // 是否允许复制页面内容 默认允许,如果设置为false、则全栈禁止复制内容。
92
119
CUSTOM_RIGHT_CLICK_CONTEXT_MENU : process . env . NEXT_PUBLIC_CUSTOM_RIGHT_CLICK_CONTEXT_MENU || true , // 自定义右键菜单,覆盖系统菜单
120
+ CUSTOM_RIGHT_CLICK_CONTEXT_MENU_THEME_SWITCH : process . env . NEXT_PUBLIC_CUSTOM_RIGHT_CLICK_CONTEXT_MENU_THEME_SWITCH || true , // 右键菜单是否允许切换主题
93
121
94
122
// 自定义外部脚本,外部样式
95
123
CUSTOM_EXTERNAL_JS : [ '' ] , // e.g. ['http://xx.com/script.js','http://xx.com/script.js']
@@ -150,6 +178,8 @@ const BLOG = {
150
178
POSTS_PER_PAGE : 12 , // post counts per page
151
179
POSTS_SORT_BY : process . env . NEXT_PUBLIC_POST_SORT_BY || 'date' , // 排序方式 'date'按时间,'notion'由notion控制
152
180
181
+ POST_WAITING_TIME_FOR_404 : process . env . NEXT_PUBLIC_POST_WAITING_TIME_FOR_404 || '8' , // 文章加载超时时间,单位秒;超时后跳转到404页面
182
+
153
183
ALGOLIA_APP_ID : process . env . NEXT_PUBLIC_ALGOLIA_APP_ID || null , // 在这里查看 https://dashboard.algolia.com/account/api-keys/
154
184
ALGOLIA_ADMIN_APP_KEY : process . env . ALGOLIA_ADMIN_APP_KEY || null , // 管理后台的KEY,不要暴露在代码中,在这里查看 https://dashboard.algolia.com/account/api-keys/
155
185
ALGOLIA_SEARCH_ONLY_APP_KEY : process . env . NEXT_PUBLIC_ALGOLIA_SEARCH_ONLY_APP_KEY || null , // 客户端搜索用的KEY
@@ -184,13 +214,20 @@ const BLOG = {
184
214
STARRY_SKY : process . env . NEXT_PUBLIC_STARRY_SKY || false , // 开关
185
215
186
216
// ********挂件组件相关********
217
+ // AI 文章摘要生成 @see https://docs_s.tianli0.top/
218
+ TianliGPT_CSS :
process . env . NEXT_PUBLIC_TIANLI_GPT_CSS || 'https://cdn1.tianli0.top/gh/zhheo/[email protected] /tianli_gpt.css' ,
219
+ TianliGPT_JS :
process . env . NEXT_PUBLIC_TIANLI_GPT_JS || 'https://cdn1.tianli0.top/gh/zhheo/[email protected] /tianli_gpt.js' ,
220
+ TianliGPT_KEY : process . env . NEXT_PUBLIC_TIANLI_GPT_KEY || '' ,
221
+
187
222
// Chatbase 是否显示chatbase机器人 https://www.chatbase.co/
188
223
CHATBASE_ID : process . env . NEXT_PUBLIC_CHATBASE_ID || null ,
189
224
// WebwhizAI 机器人 @see https://github.com/webwhiz-ai/webwhiz
190
225
WEB_WHIZ_ENABLED : process . env . NEXT_PUBLIC_WEB_WHIZ_ENABLED || false , // 是否显示
191
226
WEB_WHIZ_BASE_URL : process . env . NEXT_PUBLIC_WEB_WHIZ_BASE_URL || 'https://api.webwhiz.ai' , // 可以自建服务器
192
227
WEB_WHIZ_CHAT_BOT_ID : process . env . NEXT_PUBLIC_WEB_WHIZ_CHAT_BOT_ID || null , // 在后台获取ID
193
-
228
+ DIFY_CHATBOT_ENABLED : process . env . NEXT_PUBLIC_DIFY_CHATBOT_ENABLED || false ,
229
+ DIFY_CHATBOT_BASE_URL : process . env . NEXT_PUBLIC_DIFY_CHATBOT_BASE_URL || '' ,
230
+ DIFY_CHATBOT_TOKEN : process . env . NEXT_PUBLIC_DIFY_CHATBOT_TOKEN || '' ,
194
231
// 悬浮挂件
195
232
WIDGET_PET : process . env . NEXT_PUBLIC_WIDGET_PET || true , // 是否显示宠物挂件
196
233
WIDGET_PET_LINK :
@@ -236,6 +273,8 @@ const BLOG = {
236
273
// ********挂件组件相关********
237
274
// ----> 评论互动 可同时开启多个支持 WALINE VALINE GISCUS CUSDIS UTTERRANCES GITALK
238
275
276
+ COMMENT_HIDE_SINGLE_TAB : process . env . NEXT_PUBLIC_COMMENT_HIDE_SINGLE_TAB || false , // Whether hide the tab when there's no tabs. 只有一个评论组件时是否隐藏切换组件的标签页
277
+
239
278
// artalk 评论插件
240
279
COMMENT_ARTALK_SERVER : process . env . NEXT_PUBLIC_COMMENT_ARTALK_SERVER || '' , // ArtalkServert后端地址 https://artalk.js.org/guide/deploy.html
241
280
COMMENT_ARTALK_JS : process . env . NEXT_PUBLIC_COMMENT_ARTALK_JS || 'https://cdnjs.cloudflare.com/ajax/libs/artalk/2.5.5/Artalk.js' , // ArtalkServert js cdn
@@ -342,6 +381,9 @@ const BLOG = {
342
381
SEO_BAIDU_SITE_VERIFICATION :
343
382
process . env . NEXT_PUBLIC_SEO_BAIDU_SITE_VERIFICATION || '' , // Remove the value or replace it with your own google site verification code
344
383
384
+ // 微软 Clarity 站点分析
385
+ CLARITY_ID : process . env . NEXT_PUBLIC_CLARITY_ID || null , // 只需要复制Clarity脚本中的ID部分,ID是一个十位的英文数字组合
386
+
345
387
// <---- 站点统计
346
388
347
389
// START---->营收相关
@@ -407,7 +449,7 @@ const BLOG = {
407
449
// 开发相关
408
450
NOTION_ACCESS_TOKEN : process . env . NOTION_ACCESS_TOKEN || '' , // Useful if you prefer not to make your database public
409
451
DEBUG : process . env . NEXT_PUBLIC_DEBUG || false , // 是否显示调试按钮
410
- ENABLE_CACHE : process . env . ENABLE_CACHE || process . env . npm_lifecycle_event === 'build' , // 缓存在开发调试和打包过程中选择性开启,正式部署开启此功能意义不大 。
452
+ ENABLE_CACHE : process . env . ENABLE_CACHE || process . env . npm_lifecycle_event === 'build' || process . env . npm_lifecycle_event === 'export' , // 在打包过程中默认开启缓存,开发或运行时开启此功能意义不大 。
411
453
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)
412
454
BUNDLE_ANALYZER : process . env . ANALYZE === 'true' || false , // 是否展示编译依赖内容与大小
413
455
VERSION : process . env . NEXT_PUBLIC_VERSION // 版本号
0 commit comments