CLAUDE.md
CLAUDE.md
Project overview
Vollger Lab website built with Jekyll (minimal-mistakes theme, dark skin). Content is generated from source data files (Excel spreadsheets, BibTeX, Typst) via Python scripts orchestrated by pixi tasks. Hosted on GitHub Pages at vollgerlab.github.io.
Build system
All tasks use pixi run <task>. Run pixi install first if dependencies are missing.
Key tasks
| Task | What it does |
|---|---|
pixi run update |
Runs all generators (cv, pubs, people, software) |
pixi run pubs |
Generates _includes/pubs.html from scripts/works.bib (calls Crossref API, slow) |
pixi run cv |
Compiles CV PDF and copies to assets/CV/ (depends on cv_talks, cv_pubs) |
pixi run people |
Generates _pages/people.md from OneDrive Excel spreadsheet |
pixi run software |
Generates _pages/software.md from OneDrive Excel spreadsheet |
pixi run check-pubs |
Dry-run check for ORCID works missing from works.bib |
pixi run add-pubs |
Interactively add missing ORCID works to works.bib |
pixi run local |
Serve site locally with Jekyll (port 4000) |
Common update workflows
Adding a new publication
pixi run check-pubsto see if ORCID has new workspixi run add-pubsto interactively add them (fetches metadata from Crossref, generates BibTeX)- Or manually add a
@article{...}entry toscripts/works.bib pixi run pubsto regenerate the HTML (hits Crossref API for citation counts)pixi run cvto update the CV PDF with the new publication
Adding a new talk
- Add the talk to
CV/talks.xlsx pixi run cv(this runs cv_talks to regenerate the talks typst file, then compiles)
Updating people or software pages
These pull from Excel spreadsheets on OneDrive. Just run pixi run people or pixi run software.
Full site rebuild
pixi run update # regenerate everything
pixi run local # preview locally
File layout
Source data (inputs)
scripts/works.bib- BibTeX bibliography (canonical source for all publications)CV/talks.xlsx- Talks spreadsheetCV/metadata.toml- CV personal info and layout configCV/modules_en/*.typ- Typst CV section filesCV/src/- CV assets (avatar, signature, CSL style, split bib files)
Build scripts
scripts/build_from_citations.py- works.bib -> pubs.html (with Crossref citation counts)scripts/check_orcid.py- Compare ORCID profile against works.bibscripts/split-citations.py- Split works.bib into first/last/collaborative author bib files for CVscripts/talks.py- talks.xlsx -> auto-generated-talks.typscripts/build_people.py- OneDrive Excel -> people.mdscripts/build_software.py- OneDrive Excel -> software.md
Generated files (do not edit by hand)
_includes/pubs.html- Full publication list HTML_pages/people.md- People page_pages/software.md- Software pageCV/modules_en/auto-generated-talks.typ- Generated talks sectionCV/src/first-author.bib,CV/src/last-author.bib,CV/src/collaborative-author.bib- Split bib filesassets/CV/Mitchell-R-Vollger-CV.pdf- Compiled CV
Pages (safe to edit)
_pages/publications.md- Publications page layout (toggle button for date/role view)_pages/CV.md- CV page (embeds PDF)_pages/research.md- Research description_pages/contact.md- Contact infoindex.md- Homepage_includes/select-pubs.html- Manually curated selected publications for homepage
Config
_config.yml- Jekyll config (excludes CV/ and scripts/ from build)_data/navigation.yml- Top navigation barassets/css/main.scss- Custom CSS (publication tables, people page, avatars)
Notes
- The
pubstask calls the Crossref API for every publication to get citation counts, so it takes a while. Only run when you need updated counts or have new publications. - The publications page has two views (by date, by author role) toggled by a button. Both are generated in pubs.html as hidden/visible divs.
works.bibexists in both this repo and mrvollger.github.io. This repo is canonical.- The CV uses the brilliant-cv Typst package. The main file uses v2.0.5, modules use v2.0.3 (this is intentional and works).