From ef24a6dbe86298d597652292edbe9ef0c45a1b71 Mon Sep 17 00:00:00 2001 From: tangly1024 Date: Sun, 5 Jan 2025 14:57:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E7=AB=A0=E8=87=AA=E5=8A=A8=E4=B8=8A?= =?UTF-8?q?=E4=B8=8B=E6=9E=B6=E5=8A=9F=E8=83=BD=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blog.config.js | 34 ++-------------------------------- conf/post.config.js | 38 ++++++++++++++++++++++++++++++++++++++ lib/config.js | 1 + lib/db/getSiteData.js | 2 +- 4 files changed, 42 insertions(+), 33 deletions(-) create mode 100644 conf/post.config.js diff --git a/blog.config.js b/blog.config.js index 37c12af0..4906d18a 100644 --- a/blog.config.js +++ b/blog.config.js @@ -28,8 +28,9 @@ const BLOG = { // 原配置文件过长,且并非所有人都会用到,故此将配置拆分到/conf/目录下, 按需找到对应文件并修改即可 ...require('./conf/comment.config'), // 评论插件 ...require('./conf/contact.config'), // 作者联系方式配置 - ...require('./conf/image.config'), // 网站图片相关配置 + ...require('./conf/post.config'), // 文章与列表配置 ...require('./conf/analytics.config'), // 站点访问统计 + ...require('./conf/image.config'), // 网站图片相关配置 ...require('./conf/font.config'), // 网站字体 ...require('./conf/right-click-menu'), // 自定义右键菜单相关配置 ...require('./conf/code.config'), // 网站代码块样式 @@ -59,37 +60,6 @@ const BLOG = { // 文章列表相关设置 CAN_COPY: process.env.NEXT_PUBLIC_CAN_COPY || true, // 是否允许复制页面内容 默认允许,如果设置为false、则全栈禁止复制内容。 - // 文章URL前缀 - POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX ?? 'article', - // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug] - // 如果此项配置为 '' 空, 则文章将没有前缀路径 - // 支援類似 WP 可自訂文章連結格式的功能:https://wordpress.org/documentation/article/customize-permalinks/,目前只先實作 %year%/%month%/%day% - // 例:如想連結改成前綴 article + 時間戳記,可變更為: 'article/%year%/%month%/%day%' - - // 分享条 - 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_TITLE_ICON: process.env.NEXT_PUBLIC_POST_TITLE_ICON || true, // 是否显示标题icon - POST_DISABLE_GALLERY_CLICK: - process.env.NEXT_PUBLIC_POST_DISABLE_GALLERY_CLICK || false, // 画册视图禁止点击,方便在友链页面的画册插入链接 - 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: process.env.NEXT_PUBLIC_POST_POST_PREVIEW_LINES || 12, // 预览博客行数 - POST_RECOMMEND_COUNT: process.env.NEXT_PUBLIC_POST_RECOMMEND_COUNT || 6, // 推荐文章数量 - POSTS_PER_PAGE: process.env.NEXT_PUBLIC_POST_PER_PAGE || 12, // post counts per page - POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制 - POST_WAITING_TIME_FOR_404: - process.env.NEXT_PUBLIC_POST_WAITING_TIME_FOR_404 || '8', // 文章加载超时时间,单位秒;超时后跳转到404页面 - - // 标签相关 - TAG_SORT_BY_COUNT: true, // 标签是否按照文章数量倒序排列,文章多的标签排在前。 - IS_TAG_COLOR_DISTINGUISHED: - process.env.NEXT_PUBLIC_IS_TAG_COLOR_DISTINGUISHED === 'true' || true, // 对于名称相同的tag是否区分tag的颜色 - // 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example LAYOUT_SIDEBAR_REVERSE: process.env.NEXT_PUBLIC_LAYOUT_SIDEBAR_REVERSE || false, diff --git a/conf/post.config.js b/conf/post.config.js new file mode 100644 index 00000000..3e7a4ff3 --- /dev/null +++ b/conf/post.config.js @@ -0,0 +1,38 @@ +/** + * 文章相关功能 + */ +module.exports = { + // 文章URL前缀 + POST_URL_PREFIX: process.env.NEXT_PUBLIC_POST_URL_PREFIX ?? 'article', + // POST类型文章的默认路径前缀,例如默认POST类型的路径是 /article/[slug] + // 如果此项配置为 '' 空, 则文章将没有前缀路径 + // 支援類似 WP 可自訂文章連結格式的功能:https://wordpress.org/documentation/article/customize-permalinks/,目前只先實作 %year%/%month%/%day% + // 例:如想連結改成前綴 article + 時間戳記,可變更為: 'article/%year%/%month%/%day%' + + POST_SCHEDULE_PUBLISH: + process.env.NEXT_PUBLIC_NOTION_SCHEDULE_PUBLISH || true, // 按照文章的发布时间字段,控制自动上下架 + + // 分享条 + 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_TITLE_ICON: process.env.NEXT_PUBLIC_POST_TITLE_ICON || true, // 是否显示标题icon + POST_DISABLE_GALLERY_CLICK: + process.env.NEXT_PUBLIC_POST_DISABLE_GALLERY_CLICK || false, // 画册视图禁止点击,方便在友链页面的画册插入链接 + 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: process.env.NEXT_PUBLIC_POST_POST_PREVIEW_LINES || 12, // 预览博客行数 + POST_RECOMMEND_COUNT: process.env.NEXT_PUBLIC_POST_RECOMMEND_COUNT || 6, // 推荐文章数量 + POSTS_PER_PAGE: process.env.NEXT_PUBLIC_POST_PER_PAGE || 12, // post counts per page + POSTS_SORT_BY: process.env.NEXT_PUBLIC_POST_SORT_BY || 'notion', // 排序方式 'date'按时间,'notion'由notion控制 + POST_WAITING_TIME_FOR_404: + process.env.NEXT_PUBLIC_POST_WAITING_TIME_FOR_404 || '8', // 文章加载超时时间,单位秒;超时后跳转到404页面 + + // 标签相关 + TAG_SORT_BY_COUNT: true, // 标签是否按照文章数量倒序排列,文章多的标签排在前。 + IS_TAG_COLOR_DISTINGUISHED: + process.env.NEXT_PUBLIC_IS_TAG_COLOR_DISTINGUISHED === 'true' || true // 对于名称相同的tag是否区分tag的颜色 +} diff --git a/lib/config.js b/lib/config.js index 314e8318..4244a04e 100644 --- a/lib/config.js +++ b/lib/config.js @@ -34,6 +34,7 @@ export const siteConfig = (key, defaultVal = null, extendConfig = {}) => { case 'POST_LIST_STYLE': case 'POST_LIST_PREVIEW': case 'POST_URL_PREFIX_MAPPING_CATEGORY': + case 'POST_SCHEDULE_PUBLISH': case 'IS_TAG_COLOR_DISTINGUISHED': case 'TAG_SORT_BY_COUNT': case 'THEME': diff --git a/lib/db/getSiteData.js b/lib/db/getSiteData.js index 07e619f6..21a0d4a4 100755 --- a/lib/db/getSiteData.js +++ b/lib/db/getSiteData.js @@ -236,7 +236,7 @@ async function converNotionToSiteDate(pageId, from, pageRecordMap) { // 新特性,判断文章的发布和下架时间,如果不在有效期内则进行下架处理 const publish = isInRange(post.date) - if (!publish) { + if (!publish && siteConfig('POST_SCHEDULE_PUBLISH', '', NOTION_CONFIG)) { console.log(post.title, '未处于发布时段 [', post.date, '] 内,将强制隐藏') // 隐藏 post.status = 'Invisible'