This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Install dependencies (requires Ruby + Bundler 2.2.19)
gem install bundler -v 2.2.19
bundle install
# Start development server with live reload (http://localhost:4000)
bash run_server.sh
# or directly:
bundle exec jekyll serve -l
# Build for production (outputs to _site/)
bundle exec jekyll build
There are no automated tests. Test changes manually by running the dev server and visually inspecting the output.
This is Zikang Xu’s academic homepage — a single-page site built with Jekyll and hosted on GitHub Pages. It derives from the acad-homepage project, which itself is a customized fork of the Minimal Mistakes Jekyll theme.
All content lives in _pages/about.md. The site has no blog posts and no subpages. The navigation bar links to anchor IDs within this single page.
Adding/changing content means editing _pages/about.md. The file uses YAML front matter (permalink: /) and is organized into sections separated by --- horizontal rules with heading IDs (e.g., #about-me, #-news, #-publications).
Navigation entries are defined in _data/navigation.yml as anchor links. When you add a new section heading with an ID to about.md, add a corresponding entry here.
_layouts/default.html — the only layout; extends Minimal Mistakes compress layout with a sidebar + main content structure_includes/ — partials for <head>, masthead (nav bar), sidebar (author profile card), analytics, SEO meta tags, and dynamic Google Scholar statsassets/css/main.scss (.paper-box for publication entries, anchor scroll offsets, badges)collapse.js / collapse.css for accordion/collapsible widgetsacademicons icon font for academic social links (ORCID, Google Scholar)_includes/head/custom.html)_blank for all external linksA Python script at google_scholar_crawler/main.py uses the scholarly library to scrape citation data. A GitHub Actions workflow (.github/workflows/google_scholar_crawler.yaml) runs this daily at 8:00 UTC and pushes results to the google-scholar-stats branch. The site reads these stats via jsDelivr CDN (google_scholar_stats_use_cdn: true in _config.yml).
This directory is excluded from the Jekyll build.
_config.yml)_sass/google_scholar_crawler, .github, docs, and various dev artifacts_pages directory, .htaccess, files