feat: convert workshops to a Jekyll collection#204
Conversation
Replaces hardcoded HTML in pages/workshops.md and _layouts/home.html with a Jekyll collection (_workshops/) so both locations stay in sync automatically when a new workshop is added. Changes: - _config.yml: add 'workshops' collection (output: false) - _workshops/: 28 workshop data files (YYYY-MM-DD-slug.md) with front matter fields: title, location, date, year, presenters, repo_url, description (optional) - pages/workshops.md: rewritten as a Liquid template; recent workshops (year >= 2024) shown with full details, past workshops grouped by year in Bootstrap accordion sorted descending - _layouts/home.html: hardcoded 5-item list replaced with Liquid loop over site.workshops sorted by date desc, limit 5 Adding a new workshop now requires only a single file in _workshops/. Closes #197
✅ Deploy Preview for grand-swan-ca5201 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
This PR migrates workshop content from hardcoded HTML into a dedicated Jekyll collection (_workshops/), so the homepage “Recent Workshops” section and the /workshops/ page can both render from a single source of truth.
Changes:
- Added a
workshopscollection in_config.ymland introduced_workshops/Markdown front-matter entries for each workshop. - Rewrote
pages/workshops.mdto render “Recent” vs “Past” workshops via Liquid, including a year-grouped accordion for past workshops. - Updated
_layouts/home.htmlto populate the homepage “Recent Workshops” list via a Liquid loop oversite.workshops.
Reviewed changes
Copilot reviewed 31 out of 31 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
_config.yml |
Registers the workshops collection for use in Liquid templates. |
_layouts/home.html |
Replaces hardcoded homepage workshop list with a dynamic Liquid loop. |
pages/workshops.md |
Replaces hardcoded workshops page content with Liquid-driven rendering/grouping. |
_workshops/2016-05-01-chicago-federal-reserve.md |
Adds workshop collection entry (data). |
_workshops/2016-06-01-econometric-society.md |
Adds workshop collection entry (data). |
_workshops/2016-10-01-university-of-economics-ho-chi-minh-city.md |
Adds workshop collection entry (data). |
_workshops/2017-03-01-rba-rbnz.md |
Adds workshop collection entry (data). |
_workshops/2017-06-01-university-of-chicago.md |
Adds workshop collection entry (data). |
_workshops/2017-08-01-anu-ams.md |
Adds workshop collection entry (data). |
_workshops/2017-09-01-us-phd-workshops.md |
Adds workshop collection entry (data). |
_workshops/2018-03-01-anu-honours-workshop.md |
Adds workshop collection entry (data). |
_workshops/2018-05-01-university-of-copenhagen.md |
Adds workshop collection entry (data). |
_workshops/2019-04-01-department-of-industry-innovation-and-science.md |
Adds workshop collection entry (data). |
_workshops/2022-07-01-research-school-of-economics-anu.md |
Adds workshop collection entry (data). |
_workshops/2022-09-01-crest-paris.md |
Adds workshop collection entry (data). |
_workshops/2022-09-15-central-bank-of-chile.md |
Adds workshop collection entry (data). |
_workshops/2023-04-01-keio-university.md |
Adds workshop collection entry (data). |
_workshops/2023-04-10-nagoya-university.md |
Adds workshop collection entry (data). |
_workshops/2023-04-15-kobe-university.md |
Adds workshop collection entry (data). |
_workshops/2023-10-01-columbia-university.md |
Adds workshop collection entry (data). |
_workshops/2023-10-15-international-monetary-fund.md |
Adds workshop collection entry (data). |
_workshops/2024-03-01-international-monetary-fund.md |
Adds workshop collection entry (data). |
_workshops/2024-05-01-central-bank-of-chile.md |
Adds workshop collection entry (data). |
_workshops/2024-08-01-university-of-melbourne.md |
Adds workshop collection entry (data). |
_workshops/2024-11-01-reserve-bank-of-australia.md |
Adds workshop collection entry (data). |
_workshops/2025-06-01-international-university-of-japan.md |
Adds workshop collection entry (data). |
_workshops/2025-06-15-kyoto-university.md |
Adds workshop collection entry (data). |
_workshops/2025-09-01-hitotsubashi-university.md |
Adds workshop collection entry (data). |
_workshops/2025-10-01-bank-of-portugal.md |
Adds workshop collection entry (data). |
_workshops/2025-12-01-international-monetary-fund.md |
Adds workshop collection entry (data). |
_workshops/2026-02-01-international-university-of-japan.md |
Adds workshop collection entry (data). |
- Sort past_years explicitly (uniq | sort | reverse) instead of relying on uniq preserving the upstream date ordering - Add optional date_display front-matter field, preferred over the formatted date in both workshop templates, and use it to restore the 'June - August 2017' date range for the University of Chicago workshop Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Pre-merge validation summaryBranch was updated with Data fidelity — rendered output diffed against the old hardcoded content
Review historyAll 5 Copilot review comments addressed: Ready to merge. 🤖 Validated with Claude Code |
Summary
Converts workshops from hardcoded HTML in two separate files into a Jekyll collection, so adding a new workshop requires editing exactly one file.
Problem
Previously, adding a workshop meant updating two places manually:
pages/workshops.md— the full workshops page_layouts/home.html— the hardcoded "Recent Workshops" list on the homepageSolution
Introduced a
_workshops/Jekyll collection (similar to_lectures/and_projects/).Changes
_config.ymlAdded
workshopscollection withoutput: false(no individual pages generated)._workshops/— 28 new data filesEach workshop is a markdown file named
YYYY-MM-DD-slug.mdwith front matter:pages/workshops.mdRewritten as a Liquid template:
year >= 2024): sorted newest-first, shown with full details (presenters, link, description)year < 2024): grouped by year in a Bootstrap accordion, sorted newest-first, first year expanded_layouts/home.htmlHardcoded 5-item list replaced with a Liquid loop:
{% assign recent_workshops = site.workshops | sort: "date" | reverse %} {% for workshop in recent_workshops limit:5 %}Verified
bundle exec jekyll buildpasses cleanlyAdding a new workshop (going forward)
Create a single file
_workshops/YYYY-MM-DD-slug.md— the homepage and workshops page both update automatically on the next build.Closes #197