vhAstro-Theme/src/pages/[...page].astro
Han d116e8fcd1 🍊
2025-02-12 10:09:30 +08:00

40 lines
1.2 KiB
Plaintext

---
import { getCollection } from "astro:content";
import type { GetStaticPathsOptions } from "astro";
import setSearchJson from "../utils/vhSearch";
export async function getStaticPaths(options: GetStaticPathsOptions) {
const { paginate } = options;
const posts = (await getCollection("blog")).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
// 生成 Search JSON 文件 ======
await setSearchJson(posts);
// 生成 Search JSON 文件 ======
return paginate(posts, { pageSize: 15 });
}
const { page } = Astro.props;
const { data, ...page_data } = page;
// 页面 Info
import SITE_CONFIG from "../config";
const { Description } = SITE_CONFIG;
// 博客列表组件
import ArticleCard from "../components/ArticleCard.astro";
// 公共 Layout
import Layout from "../layouts/Layout.astro";
// Aside组件
import Aside from "../components/Aside.astro";
// 分页组件
import Pagination from "../components/Pagination.astro";
---
<Layout title="" description={Description}>
<section class="vh-container">
<section class="vh-animation article-list">
<!-- 文章列表 -->
{data.map((post, index) => <ArticleCard post={post} index={index} />)}
<!-- 分页 -->
<Pagination data={page_data.url} />
</section>
<Aside />
</section>
</Layout>