Add BmMT 2026 Volunteer Guide page with tabbed navigation#76
Add BmMT 2026 Volunteer Guide page with tabbed navigation#76devin-ai-integration[bot] wants to merge 11 commits intomainfrom
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)
|
templates/standalone.html
Outdated
| @@ -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.
templates/event-section.html
Outdated
| @@ -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>
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 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 5 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.{% details %}shortcode dropdowns<details>dropdown<details>dropdownThe General 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.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
standalone.htmlbase.htmlwith emptyheaderandfooterblocks — no nav, mobile menu, or footerdetails.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)DQ Reporting Templates
copyableshortcode, because Zola does not support nesting shortcodesReview & Testing Checklist for Human
{% details %}shortcodes inside a<div id="tab-general">. Zola processes shortcodes before markdown, so this should work, but verify that all 10 dropdowns in the General tab expand correctly and their markdown content (tables, bold, lists) renders properly.{% block header %}inbase.html. Verify mobile nav still works correctly on regular pages (e.g. the homepage). Both elements arefixedpositioned so they should render identically, but confirm no z-index or layout issues.Suggested test plan: Open the BmMT 2026 event page at
/events/bmmt-2026/and confirm it looks the same as production. Test mobile nav on a regular page. Then open the volunteer guide at/events/bmmt-2026/volunteer-guide/, verify no nav/footer, click through all 5 tabs, expand dropdowns in each tab (especially General to confirm shortcodes render), test Copy buttons on HTTPS in the Disqualifications tab, and resize to mobile width to check the tab bar wrapping. Also verify/volunteer-guideredirects correctly.Notes
/bmmt-2026-volunteer-guideURL is not aliased — links to that path will 404.content/volunteer-guide.mdrather thancontent/events/to prevent it from appearing in any events listing. Thepath=frontmatter controls the URL independently of file location.location.hashsupport if this becomes an issue.toggleMobileMenuscript remains inbase.html's<head>, so it is still present on standalone pages. This is harmless (the function simply won't find the elements) but is slightly wasteful.templates/shortcodes/copyable.htmlis included but unused in this PR. Decide whether to keep it for future use or remove it to avoid confusion.Link to Devin session: https://app.devin.ai/sessions/5622665685a34704b136739346b9700d