CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Overview

This is a Jekyll-based academic personal homepage template. It generates a static website suitable for hosting on GitHub Pages, featuring automatic Google Scholar citation tracking, responsive design, and SEO optimization.

Common Commands

  • Start local development server: bash run_server.sh or bundle exec jekyll serve --livereload
  • Access local site: http://127.0.0.1:4000
  • Build for production: bundle exec jekyll build
  • Install dependencies: bundle install

Project Structure

├── _config.yml           # Main configuration (site title, author info, SEO, analytics)
├── _data/navigation.yml  # Navigation menu structure
├── _pages/               # Main content pages (about, news, publications, etc.)
│   └── includes/         # Section content: introduction.md, news.md, publications.md, etc.
├── _includes/            # Jekyll templates (head, sidebar, scripts)
├── _layouts/             # Page layouts
├── _sass/                # SCSS stylesheets
├── assets/               # CSS, JS, fonts, images
├── google_scholar_crawler/  # Python crawler for Google Scholar statistics
└── run_server.sh        # Local development startup script

Key Architecture Notes

Jekyll Static Site Generation

  • The site uses Jekyll with kramdown markdown processor
  • Content lives in _pages/*.md with YAML frontmatter for layout settings
  • Section content (about me, publications, etc.) is defined in _pages/includes/
  • Templates in _includes/ and _layouts/ provide reusable components

Google Scholar Integration

  • A Python crawler in google_scholar_crawler/ fetches citation data
  • GitHub Actions workflow (.github/workflows/google_scholar_crawler.yaml) runs daily at 16:00 UTC
  • Secrets required: GOOGLE_SCHOLAR_ID (set in GitHub repo settings)
  • Results are pushed to google-scholar-stats branch as JSON files

Content Management

  • Personal information in _config.ymlauthor: section
  • Profile photo: images/avatar.jpg
  • Institution logos: images/logo/ (SWUFE.png, XMU.png, etc.)
  • Publications section uses special <span class='show_paper_citations' data='PAPER_ID'> tags to display dynamic citation counts

Customization Points

  • Edit _config.yml for site-wide settings (title, description, author bio, social links)
  • Modify _pages/includes/*.md for section content
  • Adjust _data/navigation.yml to reorder/rename menu items
  • Favicon files in images/ (generated via favicon-generator)

Environment Setup Notes

  • Requires Ruby, RubyGems, GCC, and Make (per Jekyll requirements)
  • Uses github-pages gem bundle (~> 232) for GitHub Pages compatibility
  • Windows-specific: wdm gem for file watching

No Existing CLAUDE.md

No existing CLAUDE.md file was found, so this is the initial version.