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 a Jekyll-based GitHub Pages personal academic website, built on the Academic Pages template (a fork of Minimal Mistakes). It is served automatically by GitHub Pages when pushed to the master branch.
Commands
Local Development
# Install Ruby dependencies
bundle install
# Start local dev server with live reload
jekyll serve -l -H localhost
# Site available at http://localhost:4000
Docker
docker build -t jekyll-site .
docker run -p 4000:4000 --rm -v $(pwd):/usr/src/app jekyll-site
Architecture
Central Configuration
_config.yml controls everything: site title/URL/description, author profile (avatar, social links, bio), collections, defaults for each page type, Markdown processing (kramdown + rouge), plugins, and archive settings. Most customizations start here.
Content Organization
| Directory | Purpose |
|---|---|
_pages/ | Standalone pages (about, cv, markdown guide, 404, archives) |
_posts/ | Blog posts — filename format YYYY-MM-DD-title.md |
_teaching/ | Teaching portfolio entries (collection) |
_publications/ | Publications list (collection) |
_talks/ | Conference talks and presentations (collection) |
_portfolio/ | Portfolio items (collection) |
_drafts/ | Unpublished draft posts |
Data Files (_data/)
navigation.yml— Site navigation menu structureui-text.yml— Localized UI strings (English)authors.yml— Author profile datacomments/— Staticman-powered comment data (YAML files keyed by post slug)
Theme & Layout (_layouts/, _includes/, _sass/)
_layouts/— Page layouts:default.html,single.html,archive.html,splash.html,talk.html,compress.html_includes/— Reusable partials: masthead, footer, sidebar, author profile, analytics, comments, SEO meta tags, social sharing, pagination, breadcrumbs_sass/— SCSS stylesheets (compiled toassets/css/main.scss)assets/— Static assets (CSS, JS, images)
Content Generators (markdown_generator/)
Python scripts and Jupyter notebooks to generate markdown files for publications and talks from TSV data:
publications.py/.ipynb— Generate_publications/entries frompublications.tsvtalks.py/.ipynb— Generate_talks/entries fromtalks.tsvPubsFromBib.ipynb/pubsFromBib.py— Generate publications from BibTeX filesOrcidToBib.ipynb— Fetch ORCID publications and convert to BibTeX
Plugins
jekyll-feed, jekyll-gist, jekyll-paginate, jekyll-sitemap, jemoji — all whitelisted for GitHub Pages compatibility.
Customizing the Site
- Edit
_config.yml— updatetitle,name,description,url,repository, andauthorfields with real information - Replace
images/profile.pngwith an actual avatar - Edit
_data/navigation.ymlto update the site menu - Add/modify content files in
_pages/,_posts/, and collection directories - Upload downloadable files (PDFs, etc.) to the
files/directory