--- import { getCollection } from 'astro:content'; import BaseLayout from '../../layouts/BaseLayout.astro'; import PostCard from '../../components/PostCard.astro'; import { plural } from '../../consts'; export async function getStaticPaths() { const all = await getCollection('posts'); const slugs = new Map(); // slug -> display name for (const p of all) { p.data.categorySlugs.forEach((s, i) => { if (!slugs.has(s)) slugs.set(s, p.data.categories[i] ?? s); }); } return [...slugs.entries()].map(([slug, name]) => ({ params: { slug }, props: { catSlug: slug, catName: name }, })); } const { catSlug, catName } = Astro.props; const all = await getCollection('posts'); const posts = all .filter((p) => p.data.categorySlugs.includes(catSlug)) .sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf()); ---

Категория: {catName}

{posts.length} {plural(posts.length, ['запись', 'записи', 'записей'])} · RSS этой рубрики

{posts.map((p) => )} {posts.length === 0 &&

В этой рубрике пока нет записей.

}