--- import PostList from "~/components/astro/post-list.astro" import { en, zh } from "~/config" import { getLangFromUrl } from "~/i18n/utils" import MainLayout from "~/layouts/main.astro" import { getPostsByLocale } from "~/utils" import { getLanguagePaths } from "~/utils/langs" const lang = getLangFromUrl(Astro.url) const pageMeta = lang === "zh" ? zh.pageMeta : en.pageMeta export function getStaticPaths() { return getLanguagePaths() } const posts = await getPostsByLocale(lang) const postsByYear = posts.reduce( (acc: Record, post: any) => { const year = new Date(post.data.pubDate).getFullYear().toString() if (!acc[year]) { acc[year] = [] } acc[year].push(post) return acc }, {} as Record, ) const years = Object.keys(postsByYear).sort((a, b) => Number(b) - Number(a)) --- { years.map((year) => (

{year}

{postsByYear[year].map((post: any) => ( ))}
)) }