@rookery/meetingsMints a meeting as an idea, recording who was in the room, when it happened, and what was said.
A meeting names the people it was with by pointing at the ideas that already stand for them, so the record and the person are the same kind of thing.
#import "@rookery/core:0.1.0": idea, rookery
#import "@rookery/meetings:0.1.0": meeting
#show: rookery
#idea("doshi-velez-finale", title: [Finale Doshi-Velez])[A person.]
/* The title is synthesized from the participants and the date, coming out as
"Meeting with Finale Doshi-Velez on 10.9.26". A reference date has to come
from somewhere, whether today: here, today: on the factory below, or the
document's own #set document(date: ..). There is no wall-clock fallback. */
#meeting(
<doshi-velez-26-9-10>,
with: <doshi-velez-finale>,
on: datetime(year: 2026, month: 9, day: 10),
today: datetime(year: 2026, month: 9, day: 10),
)[
What was said.
]Where a whole site’s meetings share a page tag, bind the constructor once and write the tag nowhere else.
#import "@rookery/meetings:0.1.0": meetings
#let meeting = meetings("digital-theory-lab", today: TODAY)
#meeting(<blix-27-8-26>, with: <hagen-blix>, on: d)[..]