--- import AppLayout from '../../layouts/AppLayout.astro'; import Avatar from '../../components/Avatar.astro'; import { getLatestPublishedDispatches } from '../../lib/db'; import { dispatchSlug, dispatchKindLabel, dispatchKindPigment, dispatchExcerptParas, roleLabel, } from '../../lib/format'; const user = Astro.locals.user; const dispatches = getLatestPublishedDispatches(200); function parseUtc(s: string): Date { if (/T.*[Zz]$/.test(s) || /[+-]\d{2}:?\d{2}$/.test(s)) return new Date(s); return new Date(s.replace(' ', 'T') + 'Z'); } function fmt(iso: string): string { return new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'long', year: 'numeric', timeZone: 'Europe/Copenhagen', }).format(parseUtc(iso)); } --- Pulse Dispatch. Where we share news from Fenja — progress, decisions, and what we're building next. {dispatches.length === 0 ? ( Nothing posted yet. ) : ( {dispatches.map(d => ( {d.author_name} {d.author_title ?? roleLabel(d.author_role)} {d.title} {dispatchKindLabel(d.kind)} {dispatchExcerptParas(d).lead} {fmt(d.published_at ?? d.created_at)} ))} )}
Where we share news from Fenja — progress, decisions, and what we're building next.
Nothing posted yet.
{dispatchExcerptParas(d).lead}