--- export const prerender = true import type { GetStaticPaths, Page } from 'astro' import type { CollectionEntry } from 'astro:content' import Button from '@/components/Button.astro' import Pagination from '@/components/Paginator.astro' import PostPreview from '@/components/blog/PostPreview.astro' import PageLayout from '@/layouts/BaseLayout.astro' import { getAllPosts, getUniqueCategories, getUniqueTags, sortMDByDate } from '@/utils' export const getStaticPaths = (async ({ paginate }) => { const allPosts = await getAllPosts() const allPostsByDate = sortMDByDate(allPosts) const uniqueTags = getUniqueTags(allPosts) const uniqueCategories = getUniqueCategories(allPosts) return paginate(allPostsByDate, { pageSize: 50, props: { uniqueTags, uniqueCategories } }) }) satisfies GetStaticPaths interface Props { page: Page> uniqueTags: string[] uniqueCategories: string[] } const { page, uniqueTags, uniqueCategories } = Astro.props const meta = { description: 'Posts', title: 'Blog' } const paginationProps = { ...(page.url.prev && { prevUrl: { text: `← Previous Posts`, url: page.url.prev } }), ...(page.url.next && { nextUrl: { text: `Next Posts →`, url: page.url.next } }) } ---

Blog

{page.data.length === 0 &&

No posts yet.

} { page.data.length > 0 && (
    {page.data.map((p) => ( ))}
{!!uniqueCategories.length && ( )} {!!uniqueTags.length && ( )}
) }