CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Academic personal website for Shiyu Wan (Ph.D. Student in Biostatistics at University of Washington) built with Jekyll and hosted on GitHub Pages. Based on the Academic Pages template, a fork of Minimal Mistakes Jekyll Theme.
Live site: https://ShiyuWAN3.github.io
Development Commands
# Install dependencies
bundle install # Ruby gems
npm install # Node.js packages (for JS minification)
# Local development server (with live reload)
jekyll serve -l -H localhost
# Visit http://localhost:4000
# JavaScript minification
npm run uglify # Minify JS to assets/js/main.min.js
npm run watch:js # Watch and auto-rebuild JS
Docker Alternative
docker build -t jekyll-site .
docker run -p 4000:4000 --rm -v $(pwd):/usr/src/app jekyll-site
Architecture
Tech Stack: Jekyll (Ruby) + Liquid templates + kramdown Markdown + SCSS
Content Collections: Publications, Talks, Teaching, Portfolio, Blog Posts - each defined in _config.yml with YAML frontmatter for metadata.
Key Directories
_config.yml- Main site configuration, author info, collection definitions_pages/- Static pages (about.md, cv.md, publications.md, etc.)_publications/,_talks/,_teaching/- Academic content collections_posts/- Blog posts (format:YYYY-MM-DD-title.md)_layouts/- Page layout templates (default, single, archive, talk)_includes/- Reusable HTML/Liquid components_sass/- SCSS stylesheets_data/navigation.yml- Top navigation menu structuremarkdown_generator/- Python scripts to generate content from TSV filesimages/- Image assets including profile photofiles/- Downloadable PDFs and documents
Content Workflow
Bulk Content Generation
For publications/talks, edit the TSV files then run the Python scripts:
cd markdown_generator
python publications.py # Generates _publications/*.md from publications.tsv
python talks.py # Generates _talks/*.md from talks.tsv
Manual Content
Create .md files directly in the appropriate collection directory with YAML frontmatter:
---
title: "Paper Title"
collection: publications
permalink: /publication/2024-paper-name
date: 2024-01-15
venue: 'Journal Name'
---
Content here...
Deployment
Automatic via GitHub Pages - push to master branch triggers Jekyll build and deployment. No manual build step required.
