CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Development Commands
# Install dependencies
bundle install
# Local development server with live reload (available at localhost:4000)
bundle exec jekyll serve -l -H localhost
# One-time build to _site/
bundle exec jekyll build
Architecture Overview
This is a Jekyll static site built on the Academic Pages template (forked from Minimal Mistakes). It is deployed via GitHub Pages.
Content is split across collections and pages:
_pages/— standalone pages included via_config.yml’sincludelist.about.mdserves as the homepage (permalink: /).publications.mdis the main research page and is manually maintained (not auto-generated)._publications/,_talks/,_teaching/,_portfolio/— Jekyll collections; each file becomes a page. Front matter fields (title, date, venue, paperurl, etc.) drive how content renders._posts/— standard Jekyll blog posts (currently unused in nav).files/— static PDFs (CV, papers, slides) served at/files/filename.images/— static images.
Configuration files that control site behavior:
_config.yml— author info, social links, collection definitions, plugin list, and per-collection layout defaults. Changes here require restarting the dev server._data/navigation.yml— controls which links appear in the header nav (several sections are commented out)._data/ui-text.yml— UI string overrides.
Templates:
_layouts/— page layouts (singlefor most content,archivefor index pages,talkfor talks)._includes/— reusable partials (sidebar, author profile, SEO, analytics, etc.)._sass/— SCSS partials; compiled from_sass/_variables.scssfor theming.
Markdown generation tools (markdown_generator/): Python scripts and Jupyter notebooks that generate _publications/*.md or _talks/*.md from TSV files (publications.tsv, talks.tsv). Run publications.py or talks.py to regenerate those markdown files after editing the TSV. Alternatively, pubsFromBib.py / PubsFromBib.ipynb generates from BibTeX.
_site/ is the generated output directory — never edit files there directly.
Adding Content
- New publication: add a
.mdfile in_publications/with front matter fieldstitle,collection: publications,category(books/manuscripts/conferences),date,venue,paperurl,citation, andexcerpt. Or editpublications.tsvand runmarkdown_generator/publications.py. - CV update: replace
files/Song_Chloe_CV.pdf. - Enable a nav section: uncomment the relevant entry in
_data/navigation.ymland ensure the corresponding page/collection exists. - Author sidebar: edit the
author:block in_config.yml.
