- Hard-coded track→room mapping: Move the track-to-room mapping in
trackToRoomElements()out ofjs/utils.jsand into_config.yml(under atrackskey). This will make it easier for organizers to update room assignments for new conference years without touching JavaScript. - Sponsor Tier Logic in HTML: Refactor
_includes/sponsors.htmlto be purely data-driven. Move column sizes (col-lg-3, etc.) and CSS classes for each tier directly into_data/sponsors.ymlso the template becomes a simple, logic-free loop. - Consolidate Dynamic "Add Speaker Card" logic:
js/schedule.jsandjs/speakers.jsstill share code for building the actual speaker cards (headshots and ribbons). Extract this into a sharedcreateSpeakerCard()utility injs/utils.js.
- Image Optimization: Document the workflow for resizing and compressing images to
.webpformat and add a helper script for automated optimization. - Dockerized Build: Switch the local development environment to a Docker container that pins the Ruby and Jekyll versions to match GitHub Pages exactly.