feat: program details - #37
Open
jsubida wants to merge 27 commits into
Open
Conversation
Contributor
Author
|
@exoticDFT @ksbeattie @pained @hctorres
Visual Changes
Google Sheet Changes
Other Notes
|
Contributor
|
From a quick glance this looks good to me so far |
Requirements, design, and tasks for supporting the new Schedule sheet columns (People, Format, Info_md, Title) in build-program.js, plus the spec templates used by the spec workflow.
Repoints the Title alias from Session to a new title canonical, maps People onto the existing speakers field, and adds format and infomd canonicals. Fixture build output is byte-identical.
Seven page formats carry pill label, page title, permalink, and slug; Other (and any unrecognized value) opts out of both. Empty cells normalize to null. Fixture build output is byte-identical.
Events whose Format maps to an abstract page must carry a Title; the build aborts with one error naming every offending row. Other, unknown, and empty formats leave Title optional. Fixture output byte-identical.
Handles "A, B and C", Oxford-comma, and bare "A and B" forms without empty or and-polluted entries; feeds program.json only — display keeps the cell as typed. Fixture output byte-identical.
Talk entries gain displayed title (Title cell else Talk cell), parsed people, format, and infoMd; JSON fields append only when non-empty. A post-fold pass in schedule traversal order assigns page-format events deduplicated slug anchors and deep-link hrefs; underscored internal keys are stripped by the JSON writer. Fixture output byte-identical.
Page-format events get a .talk__format pill; with Info_md the title wraps in a relative_url deep link to its abstract-page anchor. Rows without new values render byte-identical markup (JSON conditionals landed with fold in the previous commit).
One pages/program/abstracts/<slug>.md per active format: program.md
-style front matter, generator banner, entries in schedule traversal
order with pinned {#anchor} IALs, bold bylines, and HTML-escaped
Info_md. Stale banner-carrying pages are pruned; banner-less files
(.tbd placeholders, human pages) are never touched.
Emits _data/menus/program.yml (Full Program first, formats in vocabulary order) whenever abstract pages exist; deletes the banner-carrying file when none do, reverting the menu to its hidden state. The hidden/ seed stays human-owned. Legacy fixture builds create nothing and stay byte-identical.
.talk__format is a bordered accent pill sized like the session eyebrow; .talk__link underlines the title in the accent color without changing its weight — both visually distinct from the muted .talk__speakers.
Adds Title, People, Format, and Info_md with five page formats, both and-variant People forms, Other rows with and without Title, an unknown format, a legacy talk-cell-only row, and a multi-paragraph quoted Info_md. Live-sheet artifacts stay untouched per decision 16 — the daily Action regenerates them after merge.
Stages before the changed-check (plain git diff --quiet misses untracked new pages) with git add -A so pruning deletions land too; directory pathspecs avoid failing on a not-yet-generated menubar. Documents the new sheet columns and script-managed artifacts in the README.
Entries now render an h2 title and italic byline (## Title {#anchor},
_Names_) as on us-rse.org/usrse25/program pages, instead of the h5 +
bold byline the spec originally guessed; spec docs updated to match.
Entries on generated format pages are now separated by ------ rules and each page sets menubar_toc: true, completing the USRSE'25 page look; spec docs updated to match.
The schedule grid stays compact: no speakers span (legacy Speakers included), and the .talk__speakers CSS rule goes with it. People still appear as abstract-page bylines and in program.json (speakers/people). Spec docs amended.
Renames Session/Talk/Info/Info_md/Format to Session Topic, Event Title, Session Description, Event Description, and Event Format (old headers stay as aliases). classify() is gone: Session Format is used verbatim (Break/Meal/Registration mute, Plenary highlights), the new Session Chair renders next to it on the eyebrow, and Session Description renders as Markdown via a Liquid-injection-safe markdownify capture. Event Format gains Random Access Microtalk (program/microtalks/). The Title column and its required-Title validation are retired — Event Title is the clean display title. Fixture rewritten to the new schema.
The sheet value stays "Random Access Microtalk"; the schedule pill shows RAM and the abstract page moves to program/rams/ (slug rams). Also excludes specs/ from the Jekyll build alongside scripts/ and fixtures/.
jsubida
force-pushed
the
program-details
branch
from
August 3, 2026 20:36
358ed46 to
83bac96
Compare
Contributor
|
This looks much improved! A few small things:
These are both minor points that shouldn't hold up the merging of this PR. They can either be done in another PR or discussed (and decided against) later. |
Contributor
Author
I was testing it out on just a portion of the program. After filling out the people and format fields in the spreadsheet, e210712 I can safely say it looks better (though I think a few things could still be improved) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Description
Updates build script to support new columns and style
Checklist:
cc ADD GITHUB HANDLES HERE