--- import { type CollectionEntry, getCollection } from 'astro:content' import Layout from '@layouts/Layout.astro' import Container from '@components/Container.astro' import AuthorCard from '@components/AuthorCard.astro' import BlogCard from '@components/BlogCard.astro' import { Button } from '@/components/ui/button' import { Breadcrumb, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from '@/components/ui/breadcrumb' import { HomeIcon } from 'lucide-react' export async function getStaticPaths() { const authors = await getCollection('authors') return authors.map((author) => ({ params: { slug: author.slug }, props: { author }, })) } type Props = { author: CollectionEntry<'authors'> } const { author } = Astro.props const allPosts = await getCollection('blog') const authorPosts = allPosts .filter((post) => { return post.data.authors && post.data.authors.includes(author.slug) }) .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()) --- Authors {author.data.name}

Posts by {author.data.name}

{ authorPosts.length > 0 ? (
    {authorPosts.map((post) => (
  • ))}
) : (

No posts available from this author.

) }