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
,geopy
packages - Run from
_talks/
directory to create map intalkmap/
Content Management
Adding Publications
- Edit
markdown_generator/publications.tsv
with new publication data - Run
python markdown_generator/publications.py
to generate markdown files - Files are created in
_publications/
directory
Adding Talks
- Edit
markdown_generator/talks.tsv
with new talk data - Run
python markdown_generator/talks.py
to 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.