import { siteConfig } from '@/lib/config' import CONFIG from '../config' import PostItemCard from './PostItemCard' import PostListEmpty from './PostListEmpty' import Swiper from './Swiper' /** * 博文水平列表 * 含封面 * 可以指定是否有模块背景色 * @returns {JSX.Element} * @constructor */ const PostListRecommend = ({ latestPosts, allNavPages }) => { // 获取推荐文章 const recommendPosts = getTopPosts({ latestPosts, allNavPages }) const title = siteConfig('MAGZINE_RECOMMEND_POST_TITLE', '', CONFIG) if (!recommendPosts || recommendPosts.length === 0) { return } return (
{/* 标题 */}

{title}

{/* 列表 */}
{recommendPosts?.map((p, index) => { return })}
) } /** * 获取推荐置顶文章 */ function getTopPosts({ latestPosts, allNavPages }) { // 默认展示最近更新 if ( !siteConfig('MAGZINE_RECOMMEND_POST_TAG') || siteConfig('MAGZINE_RECOMMEND_POST_TAG') === '' ) { return latestPosts } // 显示包含‘推荐’标签的文章 let sortPosts = [] // 排序方式 if (siteConfig('MAGZINE_RECOMMEND_POST_SORT_BY_UPDATE_TIME')) { sortPosts = Object.create(allNavPages).sort((a, b) => { const dateA = new Date(a?.lastEditedDate) const dateB = new Date(b?.lastEditedDate) return dateB - dateA }) } else { sortPosts = Object.create(allNavPages) } const count = siteConfig('MAGZINE_RECOMMEND_POST_COUNT', 6) // 只取前4篇 const topPosts = [] for (const post of sortPosts) { if (topPosts.length === count) { break } // 查找标签 if (post?.tags?.indexOf(siteConfig('MAGZINE_RECOMMEND_POST_TAG')) >= 0) { topPosts.push(post) } } return topPosts } export default PostListRecommend