reverse format

This commit is contained in:
Blackberry009
2025-06-30 16:26:26 +08:00
parent 7e018c1ad4
commit b72e8e91cb
3 changed files with 50 additions and 50 deletions

View File

@@ -1,32 +1,32 @@
// 注process.env.XXVercel 的环境变量配置方式见https://docs.tangly1024.com/article/how-to-config-notion-next#c4768010ae7d44609b744e79e2f9959a
// 注: process.env.XXVercel的环境变量配置方式见https://docs.tangly1024.com/article/how-to-config-notion-next#c4768010ae7d44609b744e79e2f9959a
const BLOG = {
// Important page_idDuplicate Template from https://www.notion.so/tanghh/02ab3b8678004aa69e9e415905ef32a5
NOTION_PAGE_ID:
process.env.NOTION_PAGE_ID || '20cb7f4f464a80db8541cbd0da70a64b',
THEME: process.env.NEXT_PUBLIC_THEME || 'typography', // 当前主题,在 themes 文件夹下可找到所有支持的主题;主题名称就是文件夹名,例如 example,fukasawa,gitbook,heo,hexo,landing,matery,medium,next,nobelium,plog,simple
process.env.NOTION_PAGE_ID ||
'02ab3b8678004aa69e9e415905ef32a5,en:7c1d570661754c8fbc568e00a01fd70e',
THEME: process.env.NEXT_PUBLIC_THEME || 'simple', // 当前主题在themes文件夹下可找到所有支持的主题主题名称就是文件夹名例如 example,fukasawa,gitbook,heo,hexo,landing,matery,medium,next,nobelium,plog,simple
LANG: process.env.NEXT_PUBLIC_LANG || 'zh-CN', // e.g 'zh-CN','en-US' see /lib/lang.js for more.
SINCE: process.env.NEXT_PUBLIC_SINCE || 2021, // e.g if leave this empty, current year will be used.
PSEUDO_STATIC: process.env.NEXT_PUBLIC_PSEUDO_STATIC || false, // 伪静态路径,开启后所有文章 URL 都以 .html 结尾。
NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新缓存间隔 单位 (秒);即每个页面有 5 秒的纯静态期、此期间无论多少次访问都不会抓取 notion 数据;调大该值有助于节省 Vercel 资源、同时提升访问速率,但也会使文章更新有延迟。
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 时关闭根据时间自动切换夜间模式
PSEUDO_STATIC: process.env.NEXT_PUBLIC_PSEUDO_STATIC || false, // 伪静态路径开启后所有文章URL都以 .html 结尾。
NEXT_REVALIDATE_SECOND: process.env.NEXT_PUBLIC_REVALIDATE_SECOND || 5, // 更新缓存间隔 单位(秒);即每个页面有5秒的纯静态期、此期间无论多少次访问都不会抓取notion数据调大该值有助于节省Vercel资源、同时提升访问速率但也会使文章更新有延迟。
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时关闭根据时间自动切换夜间模式
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, 博客', // 网站关键词 英文逗号隔开
BLOG_FAVICON: process.env.NEXT_PUBLIC_FAVICON || '/favicon.ico', // blog favicon 配置默认使用 /public/favicon.ico支持在线图片如 https://img.imesong.com/favicon.png
BEI_AN: process.env.NEXT_PUBLIC_BEI_AN || '', // 备案号 闽 ICPXXXXXX
BEI_AN_LINK:
process.env.NEXT_PUBLIC_BEI_AN_LINK || 'https://beian.miit.gov.cn/', // 备案查询链接,如果用了萌备等备案请在这里填写
BLOG_FAVICON: process.env.NEXT_PUBLIC_FAVICON || '/favicon.ico', // blog favicon 配置, 默认使用 /public/favicon.ico支持在线图片如 https://img.imesong.com/favicon.png
BEI_AN: process.env.NEXT_PUBLIC_BEI_AN || '', // 备案号 闽ICPXXXXXX
BEI_AN_LINK: process.env.NEXT_PUBLIC_BEI_AN_LINK || 'https://beian.miit.gov.cn/', // 备案查询链接,如果用了萌备等备案请在这里填写
// RSS 订阅
ENABLE_RSS: process.env.NEXT_PUBLIC_ENABLE_RSS || true, // 是否开启 RSS 订阅功能
// RSS订阅
ENABLE_RSS: process.env.NEXT_PUBLIC_ENABLE_RSS || true, // 是否开启RSS订阅功能
// 其它复杂配置
// 原配置文件过长,且并非所有人都会用到,故此将配置拆分到/conf/目录下按需找到对应文件并修改即可
// 原配置文件过长,且并非所有人都会用到,故此将配置拆分到/conf/目录下, 按需找到对应文件并修改即可
...require('./conf/comment.config'), // 评论插件
...require('./conf/contact.config'), // 作者联系方式配置
...require('./conf/post.config'), // 文章与列表配置
@@ -38,11 +38,11 @@ const BLOG = {
...require('./conf/animation.config'), // 动效美化效果
...require('./conf/widget.config'), // 悬浮在网页上的挂件,聊天客服、宠物挂件、音乐播放器等
...require('./conf/ad.config'), // 广告营收插件
...require('./conf/plugin.config'), // 其他第三方插件 algolia 全文索引
...require('./conf/plugin.config'), // 其他第三方插件 algolia全文索引
// 高级用法
...require('./conf/layout-map.config'), // 路由与布局映射自定义,例如自定义特定路由的页面布局
...require('./conf/notion.config'), // 读取 notion 数据库相关的扩展配置,例如自定义表头
...require('./conf/notion.config'), // 读取notion数据库相关的扩展配置例如自定义表头
...require('./conf/dev.config'), // 开发、调试时需要关注的配置
// 自定义外部脚本,外部样式
@@ -50,22 +50,22 @@ const BLOG = {
CUSTOM_EXTERNAL_CSS: [''], // e.g. ['http://xx.com/style.css','http://xx.com/style.css']
// 自定义菜单
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || true, // 支持 Menu 类型的菜单,替代了 3.12 版本前的 Page 类型
CUSTOM_MENU: process.env.NEXT_PUBLIC_CUSTOM_MENU || true, // 支持Menu类型的菜单替代了3.12版本前的Page类型
// 文章列表相关设置
CAN_COPY: process.env.NEXT_PUBLIC_CAN_COPY || true, // 是否允许复制页面内容 默认允许,如果设置为 false、则全栈禁止复制内容。
CAN_COPY: process.env.NEXT_PUBLIC_CAN_COPY || true, // 是否允许复制页面内容 默认允许如果设置为false、则全栈禁止复制内容。
// 侧栏布局 是否反转 (左变右右变左) 已支持主题hexo next medium fukasawa example
// 侧栏布局 是否反转(左变右,右变左) 已支持主题: hexo next medium fukasawa example
LAYOUT_SIDEBAR_REVERSE:
process.env.NEXT_PUBLIC_LAYOUT_SIDEBAR_REVERSE || false,
// 欢迎语打字效果Hexo,Matery 主题支持英文逗号隔开多个欢迎语。
// 欢迎语打字效果,Hexo,Matery主题支持, 英文逗号隔开多个欢迎语。
GREETING_WORDS:
process.env.NEXT_PUBLIC_GREETING_WORDS ||
'Hi我是一个程序员Hi我是一个打工人Hi我是一个干饭人欢迎来到我的博客🎉',
'Hi我是一个程序员, Hi我是一个打工人,Hi我是一个干饭人,欢迎来到我的博客🎉',
// uuid 重定向至 slug
// uuid重定向至 slug
UUID_REDIRECT: process.env.UUID_REDIRECT || false
}
module.exports = BLOG
module.exports = BLOG

View File

@@ -19,7 +19,7 @@ module.exports = {
BUNDLE_ANALYZER: process.env.ANALYZE === 'true' || false, // 是否展示编译依赖内容与大小
VERSION: (() => {
try {
// 优先使用环境变量,否则从 package.json 中获取版本号
// 优先使用环境变量否则从package.json中获取版本号
return (
process.env.NEXT_PUBLIC_VERSION || require('../package.json').version
)

View File

@@ -19,7 +19,7 @@ export { getPost } from '../notion/getNotionPost'
export { getPage as getPostBlocks } from '../notion/getPostBlocks'
/**
* 获取博客数据; 基于 Notion 实现
* 获取博客数据; 基于Notion实现
* @param {*} pageId
* @param {*} from
* @param {*} locale 语言 zh|en|jp 等等
@@ -31,7 +31,7 @@ export async function getGlobalData({
from,
locale
}) {
// 获取站点数据如果 pageId 有逗号隔开则分次取数据
// 获取站点数据 如果pageId有逗号隔开则分次取数据
const siteIds = pageId?.split(',') || []
let data = EmptyData(pageId)
@@ -65,7 +65,7 @@ export async function getGlobalData({
* @returns {Promise<JSX.Element|*|*[]>}
*/
export async function getSiteDataByPageId({ pageId, from }) {
// 获取 NOTION 原始数据,此接支持 mem 缓存。
// 获取NOTION原始数据此接支持mem缓存。
return await getOrSetDataWithCache(
`site_data_${pageId}`,
async (pageId, from) => {
@@ -101,7 +101,7 @@ const EmptyData = pageId => {
allPages: [
{
id: 1,
title: `无法获取 Notion 数据,请检查 Notion_ID \n 当前 ${pageId}`,
title: `无法获取Notion数据请检查Notion_ID \n 当前 ${pageId}`,
summary:
'访问文档获取帮助 → https://docs.tangly1024.com/article/vercel-deploy-notion-next',
status: 'Published',
@@ -137,7 +137,7 @@ const EmptyData = pageId => {
}
/**
* 将 Notion 数据转站点数据
* 将Notion数据转站点数据
* 这里统一对数据格式化
* @returns {Promise<JSX.Element|null|*>}
*/
@@ -149,7 +149,7 @@ async function convertNotionToSiteData(pageId, from, pageRecordMap) {
pageId = idToUuid(pageId)
let block = pageRecordMap.block || {}
const rawMetadata = block[pageId]?.value
// Check Type Page-DatabaseInline-Database
// Check Type Page-DatabaseInline-Database
if (
rawMetadata?.type !== 'collection_view_page' &&
rawMetadata?.type !== 'collection_view'
@@ -175,7 +175,7 @@ async function convertNotionToSiteData(pageId, from, pageRecordMap) {
if (pageIds?.length === 0) {
console.error(
'获取到的文章列表为空,请检查 notion 模板',
'获取到的文章列表为空请检查notion模板',
collectionQuery,
collection,
collectionView,
@@ -183,10 +183,10 @@ async function convertNotionToSiteData(pageId, from, pageRecordMap) {
pageRecordMap
)
} else {
// console.log('有效 Page 数量', pageIds?.length)
// console.log('有效Page数量', pageIds?.length)
}
// 抓取主数据库最多抓取 1000blocks溢出的数 block 这里统一抓取一遍
// 抓取主数据库最多抓取1000blocks溢出的数block这里统一抓取一遍
const blockIdsNeedFetch = []
for (let i = 0; i < pageIds.length; i++) {
const id = pageIds[i]
@@ -369,21 +369,21 @@ function handleDataBeforeReturn(db) {
p.date.time_zone
)
console.log(
'[定时发布] 隐藏--> 文章',
'[定时发布] 隐藏--> 文章:',
p.title,
'当前时间戳',
'当前时间戳:',
currentTimestamp,
'目标时间戳',
'目标时间戳:',
startTimestamp,
'-',
endTimestamp
)
console.log(
'[定时发布] 隐藏--> 文章',
'[定时发布] 隐藏--> 文章:',
p.title,
'当前时间',
'当前时间:',
new Date(),
'目标时间',
'目标时间:',
p.date
)
// 隐藏
@@ -431,7 +431,7 @@ function cleanPages(allPages, tagOptions) {
}
/**
* 清理一组数据的 id
* 清理一组数据的id
* @param {*} items
* @returns
*/
@@ -449,7 +449,7 @@ function shortenIds(items) {
}
/**
* 清理一组数据的 id
* 清理一组数据的id
* @param {*} items
* @returns
*/
@@ -466,7 +466,7 @@ function cleanIds(items) {
}
/**
* 清理和过滤 tagOptions
* 清理和过滤tagOptions
* @param {*} tagOptions
* @returns
*/
@@ -482,7 +482,7 @@ function cleanTagOptions(tagOptions) {
}
/**
* 清理 block 数据
* 清理block数据
*/
function cleanBlock(item) {
const post = deepClone(item)
@@ -537,7 +537,7 @@ function getLatestPosts({ allPages, from, latestPostCount }) {
/**
* 获取用户自定义单页菜单
* 旧版本,不读取 Menu 菜单,而是读取 type=Page 生成菜单
* 旧版本不读取Menu菜单而是读取type=Page生成菜单
* @param notionPageData
* @returns {Promise<[]|*[]>}
*/
@@ -625,7 +625,7 @@ function getCategoryOptions(schema) {
function getSiteInfo({ collection, block, NOTION_CONFIG }) {
const defaultTitle = NOTION_CONFIG?.TITLE || 'NotionNext BLOG'
const defaultDescription =
NOTION_CONFIG?.DESCRIPTION || '这是一个由 NotionNext 生成的站点'
NOTION_CONFIG?.DESCRIPTION || '这是一个由NotionNext生成的站点'
const defaultPageCover = NOTION_CONFIG?.HOME_BANNER_IMAGE || '/bg_image.jpg'
const defaultIcon = NOTION_CONFIG?.AVATAR || '/avatar.svg'
const defaultLink = NOTION_CONFIG?.LINK || BLOG.LINK
@@ -658,7 +658,7 @@ function getSiteInfo({ collection, block, NOTION_CONFIG }) {
// 站点网址
const link = NOTION_CONFIG?.LINK || defaultLink
// 站点图标不能是 emoji
// 站点图标不能是emoji
const emojiPattern = /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g
if (!icon || emojiPattern.test(icon)) {
icon = defaultIcon
@@ -674,7 +674,7 @@ function getSiteInfo({ collection, block, NOTION_CONFIG }) {
* @param {string} date.start_time - 开始时间可选格式HH:mm
* @param {string} date.end_date - 结束日期格式YYYY-MM-DD
* @param {string} date.end_time - 结束时间可选格式HH:mm
* @param {string} date.time_zone - 时区IANA 格式,如 "Asia/Shanghai"
* @param {string} date.time_zone - 时区IANA格式如 "Asia/Shanghai"
* @returns {boolean} 是否在范围内
*/
function isInRange(title, date = {}) {
@@ -812,8 +812,8 @@ function getTimestamp(date, time = '00:00', time_zone) {
/**
* 获取导航用的精减文章列表
* gitbook 主题用到,只保留文章的标题分类标签分类信息,精减掉摘要密码日期等数据
* 导航页面的条件,必须是 Posts
* gitbook主题用到只保留文章的标题分类标签分类信息精减掉摘要密码日期等数据
* 导航页面的条件必须是Posts
* @param {*} param0
*/
export function getNavPages({ allPages }) {
@@ -840,4 +840,4 @@ export function getNavPages({ allPages }) {
publishDate: item.publishDate,
ext: item.ext || {}
}))
}
}