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 with Jekyll using the academicpages template (forked from Minimal Mistakes theme). It’s deployed via GitHub Pages and features collections for research, teaching, talks, and portfolio items.
Development Commands
Local Development
# Install dependencies
bundle install
# Serve site locally at localhost:4000 with live reload
bundle exec jekyll serve
# Clean build directory
bundle clean
Note: If you encounter errors with bundle install, delete Gemfile.lock and try again.
Development Configuration
_config.yml- Main site configuration_config.dev.yml- Development-specific overrides
Architecture
Jekyll Collections
The site uses Jekyll collections to organize academic content:
_research/- Research papers and publications_talks/- Conference talks and presentations_teaching/- Teaching materials and courses_portfolio/- Portfolio projects_posts/- Blog posts_drafts/- Draft posts (not published)
Each collection has default front matter settings defined in _config.yml under the defaults section.
Layout System
_layouts/- Page templates (default, single, talk, archive, etc.)_includes/- Reusable components (header, footer, author-profile, etc.)_sass/- SCSS stylesheets
Content Organization
_pages/- Static pages (about, CV, contacts, etc.)_data/navigation.yml- Site navigation menu configuration_data/ui-text.yml- Internationalization text stringsfiles/- Static files (PDFs, documents) accessible at/files/filename.pdfimages/- Image assets
Markdown Generation
The markdown_generator/ directory contains tools to bulk-generate collection items from structured data:
Python scripts:
publications.py- Generate_publications/frompublications.tsvtalks.py- Generate_talks/fromtalks.tsvpubsFromBib.py- Generate publications from BibTeX files
Jupyter notebooks:
publications.ipynb- Interactive version of publications.py with documentationtalks.ipynb- Interactive version of talks.py with documentationPubsFromBib.ipynb- Interactive BibTeX converter
These scripts read TSV files with structured data (title, date, venue, etc.) and create individual markdown files with proper front matter for each item.
Configuration Files
_config.yml- Primary site configuration including:- Site metadata (title, description, URL)
- Author information and social links
- Jekyll settings (markdown processor, plugins, permalinks)
- Collection definitions
- Default front matter values
- Analytics and SEO settings
Theme Customization
This site uses a customized version of Minimal Mistakes. Key customization points:
- Author profile in
_includes/author-profile.html - Custom archive layouts in
_includes/archive-single*.html - Site navigation in
_includes/masthead.html
Working with Content
Adding New Content
- Create markdown files in the appropriate collection directory (
_research/,_talks/, etc.) - Include required front matter (layout, title, date, permalink)
- Follow existing content files as templates
Using Markdown Generators
For bulk content creation:
- Edit the TSV file in
markdown_generator/with your data - Run the corresponding Python script:
python markdown_generator/talks.py - Or open the Jupyter notebook for interactive use
- Generated markdown files will be created in the appropriate collection directory
Modifying Navigation
Edit _data/navigation.yml to add/remove menu items in the site header.
Updating Author Profile
Modify the author section in _config.yml to change bio, avatar, and social links.
