Skip to content

Conversation

@jhenstridge
Copy link
Member

This PR is an attempt to improve the event archive. As well as adding some missing events from 2021-2025, it makes the following changes:

  1. Juggle the events landing page and archive page so that events/calendar.md publishes to /events/ and events/_index.md publishes to /events/archive/. This makes the archive page the root of the section, with all other event pages as its children.
  2. Make the archive page show a reverse chronological list of all events we've held, with pagination so the list doesn't get too long.
  3. Use Hugo's taxonomy feature to associate "presenters" with events. This has Hugo build up lists of events with the same presenter (e.g. at /presenters/James-Henstridge/).
  4. Display the presenter on event pages and the archive listing.
  5. Clean up event titles to move presenter names into presenter metadata.

There's still a bit of clean up to do, It's possible to create pages for the taxonomy terms (e.g. presenters/James-Henstridge/_index.md) that could hold a presenter bio that would be shown above all the linked events. We could probably also transclude the bio back into the event pages.

…events sorted in reverse chronological order.

I've essentially renamed events/_index.md to events/calendar.md and
events/archive.md to events/_index.md, but used the "url" frontmatter
attribute to keep them in their old locations.

The archive page uses a custom layout that paginates
.RegularPagesRecursive to get everything in the sub-tree of the site.
@niceness
Copy link
Contributor

niceness commented Oct 16, 2025

Nice work on filling out the archives! I'm less sure on step 1, though - is it necessary to get these sort of results and index generation?

There might be special cases where overriding the published URL is helpful, but I find it a bit confusing:

  1. why is content/events/_index.md not named index.md ?
    • OK, so it's a "branch bundle"? but why is that chosen? https://gohugo.io/content-management/page-bundles/
    • if it was a "leaf bundle", could we still have /events /events/YEAR /events/YEAR/foo ?
      • where /events/YEAR/foo is published from content/events/YEAR/foo.md with no special front matter url: overrides
  2. why is content/events/_index.md is publishing to url: /events/archive/ ? instead of /events ?
  3. why is content/events/calendar.md is publishing to url: /events/ ?

@niceness niceness requested review from harrymcn and loomhigh October 16, 2025 19:37
@jhenstridge
Copy link
Member Author

A directory containing an _index.md file is a "section" page (or subsection) containing other pages. A file like foo/index.md is treated roughly the same as foo.md: it is a leaf page (i.e. no sub pages). It's mostly useful if you want to publish some other resources together with the page (e.g. a photo or a PDF).

For the last two questions, a "section" page is rendered as a listing of the pages it contains. If we want the listing of the events section to appear at /events/archive/, then we tell content/events/_index.md to use that URL.

Although given I ended up using a custom layout template for the archive page anyway, I might be able to list the pages without the url: switcheroo (maybe list .Parent.RegularPagesRecursive). Both options seem a little ugly in different ways.

@jhenstridge
Copy link
Member Author

I gave it a test to see if I could paginate .Parent.RegularPagesRecursive, and it gives the following error:

ERROR Rebuild failed: render: failed to render pages: render of "/home/james/src/plug/plugorgau.github.io/content/events/archive.md" failed: "/home/james/src/plug/plugorgau.github.io/layouts/_default/baseof.html:21:17": execute of template failed at <$page.Paginator.TotalPages>: error calling Paginator: pagination not supported for this page: kind: "page", path: "/events/archive", file: "/home/james/src/plug/plugorgau.github.io/content/events/archive.md"

It looks like this is explicitly not supported, and that you can only paginate a section page:

https://discourse.gohugo.io/t/paginator-issue-in-custom-layouts/48258

@jhenstridge
Copy link
Member Author

I've filled in content for 2003-2008 from the Internet Archive, which had copies of the old Drupal website, including slide decks where available.

I've just included PDF versions of slides, since they are unlikely to bitrot and can be displayed directly in the browser. This involved:

  1. Some .sxi and .odp presentations converted with LibreOffice.
  2. One MagicPoint presentation converted with mgp2ps and ps2pdf
  3. A couple where we only had images of slides with img2pdf.

There's also audio of a small number of talks that the Internet Archive captured. I've just left them as archive.org links for now, but we might want to host them ourselves again.

It'd be nice to fill in 2009-2012 a bit more. It looks like we lost the archive of the plug-announce list, which seems to be the main record of things from that era.

@jhenstridge jhenstridge merged commit e064dff into master Oct 21, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants