import BLOG from '@/blog.config' import { siteConfig } from '@/lib/config' import { getGlobalData, getPost, getPostBlocks } from '@/lib/db/getSiteData' import { DynamicLayout } from '@/themes/theme' /** * 根据notion的slug访问页面 * 只解析一级目录例如 /about * @param {*} props * @returns */ const Dashboard = props => { const theme = siteConfig('THEME', BLOG.THEME, props.NOTION_CONFIG) return } export async function getStaticProps({ locale }) { const prefix = 'dashboard' let fullSlug = 'dashboard' const from = `slug-props-${fullSlug}` const props = await getGlobalData({ from, locale }) if (siteConfig('PSEUDO_STATIC', false, props.NOTION_CONFIG)) { if (!fullSlug.endsWith('.html')) { fullSlug += '.html' } } // 在列表内查找文章 props.post = props?.allPages?.find(p => { return p.type.indexOf('Menu') < 0 && p.slug === fullSlug }) // 处理非列表内文章的内信息 if (!props?.post) { const pageId = prefix if (pageId.length >= 32) { const post = await getPost(pageId) props.post = post } } // 无法获取文章 if (!props?.post) { props.post = null return { props, revalidate: process.env.EXPORT ? undefined : siteConfig( 'NEXT_REVALIDATE_SECOND', BLOG.NEXT_REVALIDATE_SECOND, props.NOTION_CONFIG ) } } // 文章内容加载 if (!props?.post?.blockMap) { props.post.blockMap = await getPostBlocks(props.post.id, from) } delete props.allPages return { props, revalidate: process.env.EXPORT ? undefined : siteConfig( 'NEXT_REVALIDATE_SECOND', BLOG.NEXT_REVALIDATE_SECOND, props.NOTION_CONFIG ) } } export const getStaticPaths = async () => { return { paths: [ { params: { index: [] } }, // 对应首页路径 { params: { index: ['membership'] } }, { params: { index: ['balance'] } }, { params: { index: ['user-profile'] } }, { params: { index: ['user-profile', 'security'] } }, // 嵌套路由,按结构传递 { params: { index: ['order'] } }, { params: { index: ['affiliate'] } } ], fallback: 'blocking' // 或者 true,阻塞式渲染 } } export default Dashboard