website/src/pages/projects/[slug].astro

38 lines
850 B
Plaintext
Raw Normal View History

2024-03-28 18:30:52 +01:00
---
import { getCollection } from "astro:content";
import Post from "@layouts/Post.astro";
import { getLocale } from "astro-i18n-aut";
import { filterCollection, parseSlug } from "@i18n/utils";
const locale = getLocale(Astro.url);
export async function getStaticPaths() {
const pages = await getCollection("projects");
const paths = pages.map((page) => {
const [slug] = parseSlug(page.id);
return { params: { slug }, props: { ...page } };
});
return paths;
}
const pages = await getCollection("projects");
const page = filterCollection(pages, locale).find((page) => {
const [slug] = parseSlug(page.id);
return slug === Astro.params.slug;
});
if (!page) {
return new Response("Not found", {
status: 404,
});
}
const { Content } = await page.render();
---
2024-04-06 18:03:45 +02:00
<Post {...page} backlink="/projects">
2024-03-28 18:30:52 +01:00
<Content />
</Post>