Sort speakers by their most recent talks

This commit is contained in:
Oliver Davies 2024-02-06 08:00:00 +00:00
parent 7f8195d425
commit 0ea448b4b6
2 changed files with 16 additions and 1 deletions

View file

@ -4,7 +4,21 @@
<div class="mt-8">
<div class="grid grid-cols-2 gap-10 px-4 mx-auto max-w-sm md:grid-cols-3 md:max-w-md lg:grid-cols-4 lg:gap-8 lg:max-w-full xl:grid-cols-6">
{% for speaker in speakers|sort((a, b) => a.name <=> b.name) %}
{% set speakersAndDates = [] %}
{% for speaker in speakers %}
{% set talksForSpeaker = talks|default([])|filter(talk => talk.speaker == speaker.name) %}
{% set mostRecentTalk = talksForSpeaker|first %}
{% set speakersAndDates = speakersAndDates|merge([{
date: mostRecentTalk.date,
speaker,
}]) %}
{% endfor %}
{% set sortedSpeakers = speakersAndDates|sort((a, b) => b.date <=> a.date) %}
{% for speaker in sortedSpeakers|column('speaker') %}
<div>
<a href="{{ speaker.url }}" class="flex flex-col-reverse gap-3 items-center group">
<div class="text-center">

View file

@ -5,4 +5,5 @@ use: [speakers]
{% include 'speakers/recent-speakers' with {
speakers: data.speakers,
talks: site.talks,
} %}