CLAUDE.md

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Local Development

Requires Ruby 3.x via rbenv (.ruby-version is set in the repo root):

bundle install
bundle exec jekyll serve        # serve at http://localhost:4000
bundle exec jekyll serve -l     # with live reload
bundle exec jekyll build        # build to _site/

Note: Jekyll’s WEBrick server does not support HTTP range requests, so <video> elements won’t play locally. To test video, either push to GitHub Pages or build and serve with:

bundle exec jekyll build && cd _site && python3 -m http.server 4000

Architecture

This is an Academic Pages Jekyll site (fork of Minimal Mistakes). Content lives in five collections (_publications/, _talks/, _projects/, _teaching/, _portfolio/), rendered via _layouts/single.html and aggregated by pages in _pages/.

Content Collections

Publications (_publications/YYYY-slug.md) — front matter fields:

  • Required: title, collection, category (manuscriptsconferencesbooks), permalink, date, venue, citation
  • Optional: excerpt, paperurl, fulltexturl (overrides paperurl for the “Paper” link when present), slidesurl, bibtex

Talks (_talks/YYYY-MM-DD-slug.md) — fields: title, type, venue, date, location, slidesurl

Projects (_projects/YYYY-slug.md) — fields: title, date, project_type (collaborativestudent), publications (list of publication slugs for cross-linking)

Key Layout: _layouts/single.html

Handles all publication/talk/project pages. Renders citation, Paper/Slides/BibTeX links, and an expandable BibTeX block with copy-to-clipboard. The fulltexturl field was added to support locally-hosted PDFs as an alternative to paywalled paperurl links.

Publications Page Logic

_pages/publications.html groups publications by the category front matter field, using the publication_category mapping defined in _config.yml:

publication_category:
  manuscripts: Journal Articles
  conferences: Conference Papers
  books: Books

Cross-Collection Linking

Projects can list related publications by slug in their publications front matter array. _includes/related_publications.html resolves these slugs and renders links inline.

Static Files

PDFs, slides, and videos are stored in files/ with the naming convention YYYY-MM-DD-type-author-slug.ext. Reference them with absolute paths like /files/filename.ext.

Batch Content Generation

markdown_generator/ contains Python/Jupyter tools to bulk-generate markdown from TSV or BibTeX input (pubsFromBib.py, OrcidToBib.ipynb, etc.). Prefer these for adding multiple entries at once.