Skip to content

Move talks, teaching and software to data files; richer publication links - #41

Merged
sbryngelson merged 1 commit into
sourcefrom
feat/phase-3-data
Sep 6, 2026
Merged

sbryngelson merged 1 commit into
sourcefrom
feat/phase-3-data

Conversation

@sbryngelson

Copy link
Copy Markdown
Owner

Summary

Phase 3 of the template cleanup: the data model. Users edit YAML lists and BibTeX fields instead of HTML.

Publications

  • Links from BibTeX fields: file (PDF), doi, arxiv, url, code, slides, video, poster, data each become a pill button. The old convention (arXiv id in doi for @unpublished) still works. Template-only fields are stripped from the copyable BibTeX.
  • BIB button on every entry type (was five types only).
  • Year badge from entry.year in the template, replacing the JS regex over citation text.
  • selected = {true} lists an entry in a "Selected publications" block on the home page; the block hides itself when nothing is flagged.
  • citesty.csl no longer prints URLs inside reference text (links are buttons; its DOI branch had already been removed for the same reason).

Data-driven pages

  • _data/talks.yml replaces the @incollection[keywords ^= invited] BibTeX hack (invited/contributed sections, optional link/slides/video buttons).
  • _data/teaching.yml and _data/software.yml drive the Teaching and Software pages.
  • _data/people.yml and the About page's duplicate "Students and Mentoring" list are removed (agreed in review of the design).
  • Empty lists render a short hint pointing at the data file.

Setup and configuration

  • ./setup.sh --clean strips the Feynman demo (data entries, ref.bib, posts, papers, demo images, prose) to commented skeletons plus a placeholder avatar, then runs the usual prompts; prompts also set description and derive scholar.last_name / first_name. This is the permanent answer to "Remove (me) Spencer!" (Remove (me) Spencer! #3).
  • Analytics: Plausible, Umami, GoatCounter alongside GA4, one line each.
  • nav_pages[].label for navbar text that differs from the URL.

Verification

  • Acceptance script: BIB on all 14 entries, server-rendered badges, arXiv/Code/Slides buttons, stripped BibTeX fields, no "Retrieved" text; selected block with the 3 flagged entries; talks 4 invited + 6 contributed with buttons and date text; teaching 4 courses; software 2 cards; nav label and Plausible/GoatCounter emission checked via a config overlay build.
  • setup.sh --clean exercised end-to-end in a scratch copy: exits 0, config rewritten (name, scholar names, description, placeholder photo, blank links), demo files gone, data files comment-only, clean site builds with zero occurrences of "Feynman", empty-state hints shown, favicon initials "JS".
  • Browser test (puppeteer, 22 checks) still passes; Lighthouse accessibility and best-practices 100 on home, talks, teaching, software, publications.

Upgrading

UPGRADING.md covers the talks migration, removed people.yml, and the new BibTeX fields.

…inks

Publications
- Every link is a BibTeX field: file (PDF), doi, arxiv, url, code, slides,
  video, poster, data. An arXiv id in the doi field of an @Unpublished
  entry still works. Template-only fields are dropped from the copyable
  BibTeX via bibtex_skip_fields.
- BIB button on every entry type (previously only five types).
- Year badge is rendered from entry.year in the template instead of a
  regex over the citation text in JavaScript.
- selected = {true} lists an entry under "Selected publications" on the
  home page (the block hides itself when nothing is selected).
- citesty.csl no longer prints URLs inside the reference text; links are
  buttons. Its DOI branch had already been removed for the same reason.

Data-driven pages
- _data/talks.yml (title, event, year; optional location, date, type,
  url, slides, video) replaces the @incollection[keywords ^= invited]
  BibTeX hack. Invited and contributed talks render in the order listed.
- _data/teaching.yml and _data/software.yml drive the Teaching and
  Software pages, which previously held hand-written HTML.
- _data/people.yml and the About page's "Students and Mentoring" list
  are removed; they duplicated alumni.yml. The unused alumni photo field
  is dropped from the demo data.
- Each data-driven page shows a short hint when its list is empty.

Setup and configuration
- setup.sh --clean removes the demo content (data entries, ref.bib,
  posts, papers, demo images, Feynman prose) leaving commented skeletons
  and a placeholder avatar, then runs the usual prompts. The prompts now
  also set description and derive scholar.last_name / first_name.
- Analytics: Plausible, Umami and GoatCounter alongside GA4, each a
  one-line setting in _config.yml.
- nav_pages entries accept an optional label so navbar text can differ
  from the URL.

README and UPGRADING document the new fields and files.
@sbryngelson
sbryngelson merged commit 80e4a5a into source Sep 6, 2026
1 check passed
@sbryngelson
sbryngelson deleted the feat/phase-3-data branch September 6, 2026 04:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant