--- import Layout from "../layouts/Layout.astro"; import { Icon } from "astro-icon/components"; import { config } from "../config"; // Sort talks by date, newest first const sortedTalks = [...config.talks].sort((a, b) => { if (!a.date || !b.date) return 0; return new Date(b.date).valueOf() - new Date(a.date).valueOf(); }); function formatDate(dateStr: string): string { return new Date(dateStr).toLocaleDateString("en-us", { month: "short", day: "numeric", year: "numeric", }); } ---

Talks

{/* Single talk: Simple centered card without timeline */} {sortedTalks.length === 1 && (
{sortedTalks[0].date && ( )}

{sortedTalks[0].name}

{sortedTalks[0].description}

View talk
)} {/* Multiple talks: Mobile one-sided compact timeline */} {sortedTalks.length > 1 && ( )} {/* Multiple talks: Desktop dual-sided alternating timeline */} {sortedTalks.length > 1 && ( )} { sortedTalks.length === 0 && (

No talks available yet. Check back soon!

) }