--- import { CollectionEntry, getCollection } from "astro:content"; import ArticleLayout from "@root/layouts/article.astro"; import { createRelativeArticleUrl, removeLanguageCodeFromPath } from "@root/utils"; import { getLanguageFromURL, useTranslation } from "@i18n/utils"; /** * Generate articles pages from `blog` collection. * The final url will be `http://website.com/blog/2023-01-01/my-article` with default language * and `http://website.com/{language-code}/blog/2023-01-01/my-article` with other languages. */ export async function getStaticPaths() { const collection = await getCollection("blog", (e) => !e.data.draft); return collection.map((article) => { const { id, data: { title, pubDate }, } = article; const url = createRelativeArticleUrl({ id, title, pubDate }); return { params: { blog: url.slice(1) }, props: { article, availableOnLangs: collection.filter((e) => e.id.includes(removeLanguageCodeFromPath(article.id)) ), }, }; }); } type Props = { article: CollectionEntry<"blog">; availableOnLangs: CollectionEntry<"blog">[] }; const { Content, headings } = await Astro.props.article.render(); const { article, availableOnLangs } = Astro.props; ---