--- export const prerender = false; import { getCollection, render } from 'astro:content'; import { requireAdminSession } from '../../lib/auth'; import Layout from '../../layouts/Layout.astro'; import { formatDate, formatListItem } from '../../lib/format'; import { getSlug, enrichPostWithDates, enrichPostsWithDates, resolveRelatedPosts } from '../../lib/md'; const { session, error } = await requireAdminSession(Astro.request); if (error) return error; if (!session) return Astro.redirect('/api/auth/signin'); const slug = Astro.params.slug; const rawPosts = await getCollection('md', ({ data }) => data.draft === true); const rawPost = rawPosts.find(p => getSlug(p.id) === slug); if (!rawPost) { return new Response('Not found', { status: 404 }); } const allPosts = enrichPostsWithDates(rawPosts); const post = enrichPostWithDates(rawPost); const { Content } = await render(post); const related = post.data.related ? resolveRelatedPosts(post.data.related, allPosts) : []; ---

{post.data.title}

{formatDate(post.dates.created)}{post.dates.updated && ` (updated ${formatDate(post.dates.updated)})`}

{related.length > 0 && (
related
 formatListItem(p.dates.created, `/draft/${getSlug(p.id)}`, p.data.title)).join('\n')} />
  
)}