import BLOG from '@/blog.config' import { siteConfig } from '@/lib/config' import { getGlobalData } from '@/lib/db/getSiteData' import { DynamicLayout } from '@/themes/theme' /** * 分类页 * @param {*} props * @returns */ export default function Category(props) { const theme = siteConfig('THEME', BLOG.THEME, props.NOTION_CONFIG) return } export async function getStaticProps({ params: { category }, locale }) { const from = 'category-props' let props = await getGlobalData({ from, locale }) // 过滤状态 props.posts = props.allPages?.filter( page => page.type === 'Post' && page.status === 'Published' ) // 处理过滤 props.posts = props.posts.filter( post => post && post.category && post.category.includes(category) ) // 处理文章页数 props.postCount = props.posts.length // 处理分页 if (siteConfig('POST_LIST_STYLE') === 'scroll') { // 滚动列表 给前端返回所有数据 } else if (siteConfig('POST_LIST_STYLE') === 'page') { props.posts = props.posts?.slice( 0, siteConfig('POSTS_PER_PAGE', 12, props?.NOTION_CONFIG) ) } delete props.allPages props = { ...props, category } return { props, revalidate: process.env.EXPORT ? undefined : siteConfig( 'NEXT_REVALIDATE_SECOND', BLOG.NEXT_REVALIDATE_SECOND, props.NOTION_CONFIG ) } } export async function getStaticPaths() { const from = 'category-paths' const { categoryOptions } = await getGlobalData({ from }) return { paths: Object.keys(categoryOptions).map(category => ({ params: { category: categoryOptions[category]?.name } })), fallback: true } }