--- import { getCollection } from "astro:content"; import PageLayout from "../../layouts/PageLayout.astro"; import { astroI18n, createGetStaticPaths, t } from "astro-i18n"; import PostComponent from "../../components/PostComponent.astro"; import dayjs from "dayjs"; import TagComponent from "../../components/TagComponent.astro"; import SWPaginator from "@components/styled/SWPaginator.svelte"; export const getStaticPaths = createGetStaticPaths(async (props) => { const posts = await getCollection("announcements", (entry) => entry.id.split("/")[0] === astroI18n.locale); const germanPosts = await getCollection("announcements", (entry) => entry.id.split("/")[0] === astroI18n.fallbackLocale); germanPosts.forEach((value) => { if (posts.find((post) => post.data.key === value.data.key)) { return; } else { posts.push(value); } }); return props.paginate( posts.sort((a, b) => dayjs(b.data.created).unix() - dayjs(a.data.created).unix()), { pageSize: 5, } ); }); async function getTags() { const posts = await getCollection("announcements"); const tags = new Map(); posts.forEach((post) => { post.data.tags.forEach((tag) => { if (tags.has(tag.toLowerCase())) { tags.set(tag.toLowerCase(), tags.get(tag) + 1); } else { tags.set(tag.toLowerCase(), 1); } }); }); return Array.from(tags) .sort((a, b) => b[1] - a[1]) .map((value) => value[0]); } const { page } = Astro.props; const tags = await getTags(); ---
{tags.map((tag) => )}
{ page.data.map((post) => (
)) } (i == 0 ? page.url.first : page.currentPage === page.lastPage ? page.url.current.replace(page.lastPage, i + 1) : page.url.last.replace(page.lastPage, i + 1))} />