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 GitHub Pages using the Academic Pages theme (a fork of Minimal Mistakes Jekyll theme). It’s designed for researchers to showcase their publications, talks, blog posts, and professional information.
Development Commands
Local Development
bundle clean- Clean up the directory (no need to run with--force)bundle install- Install Ruby dependenciesbundle exec jekyll liveserve- Generate HTML and serve from localhost:4000 with automatic rebuild
npm Commands (JavaScript build)
npm run uglify- Minify and concatenate JavaScript filesnpm run watch:js- Watch for JavaScript changes and auto-buildnpm run build:js- Build JavaScript (runs uglify)
Architecture
Core Jekyll Structure
- _config.yml: Main Jekyll configuration including site settings, author info, navigation, and collection definitions
- _pages/: Static pages like About, Publications, Talks, etc.
- _layouts/: HTML templates defining how different content types are rendered
- _includes/: Reusable HTML components (head, footer, navigation, etc.)
- _sass/: SCSS stylesheets for theming
- assets/: Static assets (CSS, JS, images)
Collections
The site uses Jekyll collections for structured content:
- _posts/: Blog posts
- _publications/: Academic publications
- _talks/: Conference talks and presentations
- _portfolio/: Portfolio items
- _teaching/: Teaching materials
Data Files
- _data/navigation.yml: Main navigation menu configuration
- _data/ui-text.yml: UI text and labels (supports internationalization)
Markdown Generation Tools
The markdown_generator/ directory contains Python scripts and Jupyter notebooks for automating content creation:
- pubsFromBib.py: Converts BibTeX files to markdown publication entries
- publications.py: Converts TSV data to publication markdown files
- talks.py: Converts TSV data to talk markdown files
- publications.ipynb/talks.ipynb: Interactive versions with documentation
BibTeX files:
- proceedings.bib: Conference proceedings
- pubs.bib: Other publications
Key Configuration Points
Site Settings
- Site URL and title configured in _config.yml
- Author profile information (social links, bio, etc.) in _config.yml
- Navigation menu in _data/navigation.yml
Content Front Matter
Content files use Jekyll front matter with:
layout: Template to usetitle: Page titledate: Publication datecollection: Collection name (for collection items)permalink: Custom URL if needed
Theme Customization
- Uses Academic Pages theme (based on Minimal Mistakes)
- Color scheme and typography via SCSS files
- Responsive design with mobile support
File Organization
Static Files
- files/: Upload files that appear at /files/ (PDFs, ZIP files, etc.)
- images/: Image assets
- talkmap/: Interactive talk location visualization using Leaflet.js
Generated Content
- _site/: Jekyll-generated static site (don’t edit directly)
Development Setup Requirements
- Ruby with bundler
- Node.js and npm
- Python 3.6+ (for markdown generation tools)
- Required Ruby gems specified in Gemfile
- Required npm packages in package.json
Common Tasks
Adding New Publications
- Add entries to proceedings.bib or pubs.bib files
- Run
python3 markdown_generator/pubsFromBib.pyto generate markdown files - Generated files will appear in _publications/
Adding New Talks
- Update talks.tsv with talk information
- Run the talks.py script or use talks.ipynb
- Generated files will appear in _talks/
Modifying Site Structure
- Edit navigation in _data/navigation.yml
- Add new pages in _pages/ directory
- Modify layouts in _layouts/ or create new ones
- Update _config.yml for site-wide settings
