CLAUDE.md

CLAUDE.md

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

Project Overview

This is an academic personal website built on Jekyll using the Academicpages template (a fork of Minimal Mistakes theme). It is hosted on GitHub Pages at https://aperrault.github.io.

Editing publications and news

This site is a public rendering of a research record maintained in a separate (private) repo; keep publication entries consistent with that record. The private repo is wired in via CLAUDE.local.md (not committed), which loads automatically alongside this file. Two rules:

  • Public-only. This site is public. Never publish anything not already public or explicitly approved — no pending/submitted grants, no private collaborator notes.
  • Supersession. When a workshop paper has an archival successor, the site lists both: encode it in the venue field on each — (supersedes the X version) on the successor and (superseded by the Y version) on the workshop paper — and remove the paperurl from the superseded one.

Development Commands

# Install dependencies
bundle install

# Serve locally with live reload (runs at localhost:4000)
bundle exec jekyll liveserve

# Clean bundle directory if needed
bundle clean

# Check for broken links (build first, then check)
bundle exec jekyll build && bundle exec htmlproofer ./_site --ignore-urls "/fonts.gstatic.com/,/fonts.googleapis.com/,/crcs.seas.harvard.edu/,/linkedin.com/,/openreview.net/,/pnas.org/,/papers.ssrn.com/,/dl.acm.org/,/cs.toronto.edu/" --no-enforce-https

Content Structure

Collections

  • _publications/ - Published papers as markdown files (YAML frontmatter: title, authors, venue, paperurl, citation)
  • _preprints/ - Preprint papers, same format as publications
  • _pages/ - Main site pages (about.md, publications.md, teaching.md, people.md, contact.md)

File naming convention for publications/preprints

Files use format: YYYY-MM-DD-short-title.md

Static files

  • files/ - PDFs, BibTeX files, supplementary materials
  • images/ - Site images and profile photos

Architecture

  • _config.yml - Main Jekyll configuration (collections, defaults, author info)
  • _layouts/ - Page templates (default.html is base, single.html for content pages)
  • _includes/ - Reusable components (author-profile.html, archive-single.html for publication entries)
  • _sass/ - SCSS styles compiled to assets/css/main.css
  • _data/navigation.yml - Main navigation menu structure

Adding Publications

  1. Create a markdown file in _publications/ or _preprints/ with date-prefixed filename
  2. Include YAML frontmatter with: title, authors, venue, paperurl, citation. Prefer a direct PDF link for paperurl (e.g. arxiv.org/pdf/..., openreview.net/pdf?id=...) over a landing/review page. Watch for the easy paperurl -> paperul typo, which silently drops the link.
  3. Place PDF in files/ directory (or link an external PDF)
  4. The publication will automatically appear on the publications page via the archive template

Date-prefix the filename with the event/publication date (e.g. a workshop paper uses the workshop date). News items go in _pages/about.md under “Updates:” as - Month Year—..., newest first.

Utility Scripts

The markdown_generator/ directory contains Python/Jupyter scripts to batch-generate publication markdown files from TSV data.