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 using Jekyll and the Academic Pages theme. It’s a GitHub Pages site for displaying academic publications, CV, talks, teaching experience, and blog posts. The site is deployed at https://YiKangOY.github.io.
Development Commands
Local Development
# Install dependencies
sudo apt install ruby-dev ruby-bundler nodejs # Linux/WSL
# or: brew install ruby node && gem install bundler # macOS
# Install Ruby dependencies
bundle install
# Serve locally with live reload
jekyll serve -l -H localhost
# Alternative with bundle exec
bundle exec jekyll serve -l -H localhost
The site will be available at localhost:4000 with automatic rebuilding on file changes.
JavaScript Building
# Minify and concatenate JavaScript files
npm run build:js
# Watch for JavaScript changes and auto-build
npm run watch:js
Architecture
Jekyll Collections
The site uses Jekyll collections to organize different content types:
_publications/- Research papers and publications_talks/- Conference talks and presentations_teaching/- Teaching experience and courses_posts/- Blog posts_portfolio/- Portfolio items_pages/- Static pages (About, CV, etc.)
Key Configuration
_config.yml- Main Jekyll configuration and site metadata_data/navigation.yml- Site navigation structure_data/authors.yml- Author information for multi-author support
Theme Structure
_layouts/- Page layout templates_includes/- Reusable template components_sass/- Sass stylesheetsassets/- CSS, JS, and other static assets
Content Generation Tools
The markdown_generator/ directory contains Python scripts and Jupyter notebooks for generating markdown files from structured data:
publications.py/publications.ipynb- Generate publication pages from TSVtalks.py/talks.ipynb- Generate talk pages from TSVpubsFromBib.py/PubsFromBib.ipynb- Generate publications from BibTeX
Talk Map Generation
talkmap.py- Generates an interactive map of talk locations- Requires:
glob,getorg,geopypackages - Run from
_talks/directory to create map intalkmap/
Content Management
Adding Publications
- Edit
markdown_generator/publications.tsvwith new publication data - Run
python markdown_generator/publications.pyto generate markdown files - Files are created in
_publications/directory
Adding Talks
- Edit
markdown_generator/talks.tsvwith new talk data - Run
python markdown_generator/talks.pyto generate markdown files - Files are created in
_talks/directory
Manual Content
- Blog posts: Add to
_posts/with YYYY-MM-DD-title.md format - Pages: Add to
_pages/directory - Files: Upload to
files/directory for public access
Site Deployment
This is a GitHub Pages site that auto-deploys from the master branch. No manual deployment commands needed - just push to master and GitHub Pages will build and deploy the site.
