--- import type { CollectionEntry } from 'astro:content' import { formatDate, readingTime } from '@lib/utils' import { Image } from 'astro:assets' import { Badge } from '@/components/ui/badge' import { Separator } from '@/components/ui/separator' import Link from './Link.astro' import { getEntry } from 'astro:content' type Props = { entry: CollectionEntry<'blog'> } const { entry } = Astro.props as { entry: CollectionEntry<'blog'> } const formattedDate = formatDate(entry.data.date) const readTime = readingTime(entry.body) let author = null if ( entry.data.author && typeof entry.data.author === 'object' && 'collection' in entry.data.author ) { author = await getEntry(entry.data.author) } else if (typeof entry.data.author === 'string') { author = { data: { name: entry.data.author, avatar: '/favicons/android-chrome-512x512.png', }, } } ---
{ entry.data.image && (
{entry.data.title}
) }

{entry.data.title}

{entry.data.description}

{ author && ( <>
{author.data.name} {author.data.name}
) } {formattedDate} {readTime}
{ entry.data.tags && (
{entry.data.tags.map((tag) => ( {tag} ))}
) }