Add BmMT 2026 Volunteer Guide page with tabbed navigation#76
Add BmMT 2026 Volunteer Guide page with tabbed navigation#76
Conversation
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Testing ResultsRan the volunteer guide page locally ( Feature Tests (4/4 passed)
|
…ates, add DQ handler note Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Updated Testing Results (Post-Standalone Changes)Retested locally after converting to standalone template, adding copy buttons, and DQ handler note. Devin session Feature Tests (3/3 passed)
Escalation: Copy button runtime untested on HTTPThe |
…olunteer-guide alias Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…emove old alias, add event-section template Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Testing Results (URL Restructuring)Retested locally after nesting volunteer guide in URL Path Tests (5/5 passed)
|
| @@ -0,0 +1,64 @@ | |||
| {% import "macros.html" as macros %} | |||
There was a problem hiding this comment.
can we share code between this and templates/base.html somehow
There was a problem hiding this comment.
Good call — refactored standalone.html to extend base.html with empty {% block header %} and {% block footer %} overrides instead of duplicating the <head> section. Pushed in the next commit.
| @@ -0,0 +1,34 @@ | |||
| {% import "macros.html" as macros %} | |||
There was a problem hiding this comment.
what's the point of this template?
There was a problem hiding this comment.
Moving bmmt-2026.md (a page) into bmmt-2026/_index.md (a section) to create the nested folder structure changed the Zola content type. Sections have different frontmatter than pages — notably date isn't a valid section field, and the default section.html template:
- Uses
section.titleinstead ofpage.title - Doesn't display a date
- Appends a
section_listingmacro at the bottom (which would show the volunteer guide as a child page link)
This template renders the section identically to how it looked as a page — title, date (from extra.date), prose content, and TOC sidebar, without the child page listing.
That said, if you'd prefer a different approach (e.g. just using the default section.html and accepting the differences, or restructuring differently), happy to change it.
There was a problem hiding this comment.
i feel like bmmt 2026 should stay a page. is it not possible to have a page in a page
There was a problem hiding this comment.
Good call — reverted this. bmmt-2026 is back to a regular page (content/events/bmmt-2026.md), and the volunteer guide uses path = "events/bmmt-2026/volunteer-guide" in its frontmatter to get the nested URL. Deleted event-section.html since it's no longer needed.
There was a problem hiding this comment.
i mean i don't want it to show up in the events list
There was a problem hiding this comment.
Moved the file to content/volunteer-guide.md (out of content/events/) so it won't appear in any events listing. The URL is still /events/bmmt-2026/volunteer-guide/ via path= in the frontmatter.
…eader block Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…f section nesting Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…in events listing Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…s each Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…ions Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
… Emergency Procedures, Proctors, Directory) Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…s, Schedule; rename General to Home; merge Berkeley time + computer lines Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…, Runners) matching homepage style Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…tacts Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…n; update schedule blurb Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…own cards; update colors to match palette Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…ext to text-base Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…uttons Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…oon, Pauley) Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
…alifications tab Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
|
add /vg as an alias |
Co-Authored-By: jeslyn <jeslyn@berkeley.mt>
|
@oliver-ni Done — added |
Summary
Adds a new Volunteer Guide page for BmMT 2026 at
/events/bmmt-2026/volunteer-guide/(alias:/volunteer-guide), consolidating content from two source documents (the BmMT 2026 Volunteer Guide PDF and the DQ Pipeline PDF) into a single web page.The page uses a new
standalone.htmltemplate that extendsbase.htmlbut overrides theheaderandfooterblocks to empty, so volunteers cannot navigate to the rest of berkeley.mt — the page is self-contained and intended to be shared via direct URL only. The TOC sidebar is also omitted from standalone pages.The volunteer guide file lives at
content/volunteer-guide.md(outside theevents/directory to avoid appearing in any events listing) and usespath = "events/bmmt-2026/volunteer-guide"in its frontmatter to achieve the nested URL. The existingbmmt-2026.mdpage is unchanged — it remains a regular Zola page.Tabbed navigation
Content is organized into 6 tabs with a navigation bar styled to match berkeley.mt's nav (using
⁄separators). Tab switching is handled by an inlineswitchTab()JavaScript function that toggleshiddenon.tab-paneldivs and updates active button styling. Deep-linking to tabs is supported vialocalStorage: role sub-pages (e.g. Proctors) can setlocalStorage.setItem('activeTab', 'disqualifications')before linking back, and the volunteer guide will auto-switch to that tab on load (one-shot, cleared after use).<details>dropdownThe Check-In tab uses Zola
{% details %}shortcodes (which process markdown in the body). The Disqualifications and Emergency Procedures tabs use inline HTML<details>elements because their content lives inside HTML<div>tab panels where markdown is not processed.General tab — bubble cards linking to role pages
The General tab (default) displays 5 clickable cards across two rows, styled with custom background colors from a provided palette:
Row 1 (3 cards):
#c5e0d8mint) — links to proctor scripts page#8ec6d6light blue) — Puzzle Round grading, Atomic Grader info#2d5a73dark navy, white text) — material transport, shift reportingRow 2 (2 cards, full-width row):
#d6e0f0lavender) — post-competition events & games#7badc4medium blue) — end-of-day cleanup & wrap-upEach card links to its own standalone page (e.g.
/events/bmmt-2026/volunteer-guide/proctors/) with a "← Back to Volunteer Guide" link at the top. The 5 role pages are stored as separate markdown files (content/volunteer-guide-{proctors,graders,runners,activities,teardown}.md) usingpath=frontmatter for nested URLs, all using thestandalone.htmltemplate.Proctors page — 3 expandable proctor script cards
The Proctors page (
/events/bmmt-2026/volunteer-guide/proctors/) has been restructured to display 3 bubble cards in agrid-cols-3layout, each expanding into a full proctor script panel when clicked:#c5e0d8mint#8ec6d6light blue#2d5a73dark navy, white textEach panel contains the full script extracted from the corresponding FROZEN PDF:
A
toggleScript()JavaScript function handles expand/collapse: clicking a card shows its panel and collapses any other open panel, with a chevron icon rotation animation.Activities page — room/description tables
The Activities page (
/events/bmmt-2026/volunteer-guide/activities/) displays two HTML tables sourced from the FROZEN Activities Reference Sheet PDF:The page also includes a note at the top directing volunteers to @jeslyn in Discord if interested in helping with activities.
Teardown page — full timeline
The Teardown page (
/events/bmmt-2026/volunteer-guide/teardown/) contains the complete teardown timeline sourced from the FROZEN BmMT 2026 Teardown Doc PDF, organized into 5 chronological sections:Suspicious behavior FAQ in proctor scripts
A new FAQ item was added to the Proctor FAQs section in all 3 proctor script panels:
The "Disqualifications tab" text links back to the main volunteer guide with
localStorage.setItem('activeTab','disqualifications')so it auto-opens the correct tab. The Morning/Afternoon scripts reference#dwinelle-proctors,#wheeler-proctors, or#vlsb-proctors; the Pauley script references#pauley-proctors.Disqualifications tab
Restructured to match the FROZEN DQ Pipeline PDF:
text-base)ml-8) aligned within the numbered list contextnavigator.clipboard(requires HTTPS)base.htmlchangesThe mobile menu (
#mobile-menudiv) and hamburger button (#mobile-menu-btn) were moved inside the{% block header %}block. This allowsstandalone.htmlto remove them by overriding the header block to empty. Both elements arefixedpositioned, so moving them inside themax-w-4xlcontainer does not affect their rendering on regular pages.New templates, shortcodes & content files
standalone.htmlbase.htmlwith emptyheaderandfooterblocks — no nav, mobile menu, footer, or TOC sidebardetails.html<details>/<summary>with Tailwind styling and animated chevroncopyable.htmlnavigator.clipboardAPI). Included for future reuse but not used in the volunteer guide itself (inline HTML used instead due to Zola not supporting nested shortcodes)volunteer-guide-proctors.mdvolunteer-guide-graders.mdvolunteer-guide-runners.mdvolunteer-guide-activities.mdvolunteer-guide-teardown.mdReview & Testing Checklist for Human
{% block header %}inbase.html. Verify mobile nav still works on regular pages (e.g. homepage).grid-cols-3for the 3 script cards. On narrow viewports, these cards may become too small to read. Consider whethergrid-cols-1 md:grid-cols-3would be more appropriate.Suggested test plan: Open
/events/bmmt-2026/volunteer-guide/. Verify no nav/footer/TOC visible. Click each bubble card (Proctors, Graders, Runners, Activities, Teardown) and verify each opens its standalone page. On the Proctors page, expand each of the 3 script cards and spot-check content against source PDFs — particularly the new suspicious behavior FAQ. Click the "Disqualifications tab" link in the FAQ and verify it navigates back to the volunteer guide with the Disqualifications tab auto-selected. On the Activities page, verify tables show correct rooms/descriptions and the @jeslyn note is visible at top. On the Teardown page, verify the timeline matches the source PDF. Test on a narrow viewport. On a regular page (e.g. homepage), verify mobile hamburger menu still works.Notes
/bmmt-2026-volunteer-guideURL is not aliased — links to that path will 404.content/volunteer-guide*.mdrather thancontent/events/to prevent them from appearing in any events listing. Thepath=frontmatter controls URLs independently of file location.localStorage(one-shot: key is removed after use). This means if a user navigates directly to the volunteer guide, no unexpected tab switch occurs — it only activates when arriving from a link that explicitly sets the key.templates/shortcodes/copyable.htmlis included but unused in this PR. Decide whether to keep it for future use or remove it.benjimt26). This is intentional — it's needed by proctors on the day of the event — but be aware this is publicly visible on the deployed page.Link to Devin session: https://app.devin.ai/sessions/5622665685a34704b136739346b9700d