--- import MainLayout from "@/layouts/MainLayout.astro" import Header from "@/components/Header.astro" import NewsList from "@/components/cards/NewsList.astro"; import { getCollection, getEntry } from "astro:content"; import FooterSection from "@/components/section/FooterSection.astro"; import { createTranslator, getLocalizedRoute, routeTranslations } from '@/i18n'; const tl = createTranslator(Astro.currentLocale); export function getStaticPaths() { const locales = Object.keys(routeTranslations.news); return locales.map((locale) => ({ params: { locale, news_slug: getLocalizedRoute('news', locale) }, })); } const { locale, news_slug } = Astro.params; const newsItems = await getCollection("news", (post)=>{ const currentLocale = Astro.currentLocale; return post.data.locale == currentLocale }); const sortedPosts = [...newsItems] .sort((a, b) => { const dateDiff = new Date(b.data.date).getTime() - new Date(a.data.date).getTime() if (dateDiff !== 0) return dateDiff return (a.data.order ?? 0) - (b.data.order ?? 0) }); const allTags = [...new Set( sortedPosts .filter(p => p.data.tags && p.data.tags.length > 0) .flatMap(p => p.data.tags) .filter((tag): tag is string => tag !== undefined) )].sort(); const allYears = [...new Set( sortedPosts.map(p => new Date(p.data.date).getFullYear()) )].sort((a, b) => b - a); ---

{tl("news.title")}

{tl("news.text")}

{allTags.length > 0 && (
{allTags.map((tag) => ( ))}
)}
{allYears.length > 0 && (
)} { sortedPosts.map((item) => (
)) }