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.shorbundle 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/*.mdwith 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-statsbranch as JSON files
Content Management
- Personal information in
_config.yml→author: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.ymlfor site-wide settings (title, description, author bio, social links) - Modify
_pages/includes/*.mdfor section content - Adjust
_data/navigation.ymlto 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-pagesgem bundle (~> 232) for GitHub Pages compatibility - Windows-specific:
wdmgem for file watching
No Existing CLAUDE.md
No existing CLAUDE.md file was found, so this is the initial version.