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 a Jekyll-based academic personal website built on the academicpages template (forked from Minimal Mistakes). It is hosted on GitHub Pages at xiaom233.github.io.

A PDF copy of each publication goes in files/.

Local Development

bundle install                    # Install Ruby dependencies
bundle exec jekyll serve          # Start dev server at localhost:4000
bundle exec jekyll liveserve      # Start with live reload (requires hawkins gem)

Content Structure

All content is authored as markdown files with YAML frontmatter.

DirectoryPurposeKey frontmatter fields
_pages/Core site pages (about, publications, cv, talks, etc.)permalink, title
_publications/Individual publication entries, one .md per papertitle, date, venue, paperurl, excerpt, citation
_portfolio/Portfolio/life entriestitle, date
_talks/Talk entriestitle, date
_teaching/Teaching entriestitle, date
_posts/Blog poststitle, date

Publication File Convention

Publication filenames follow the pattern YYYY-MM-DD-[slug].md, matched by the permalink: /publication/YYYY-MM-DD-[slug]. The date field in frontmatter should match the filename date.

Publication PDFs are placed in files/ and served at /files/[filename].pdf.

Site Configuration

  • _config.yml — Site-wide settings: author info, collections, navigation, plugins
  • _data/navigation.yml — Top navigation bar links
  • .gitignore — Excludes _site/ and .idea/

Bulk Generation

markdown_generator/publications.py can generate publication markdown files in bulk from a TSV file (publications.tsv) with columns: pub_date, title, venue, excerpt, citation, site_url, paper_url, url_slug.