CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
Academic personal homepage for Changxin Ke, built on the AcadHomepage Jekyll template. Deployed via GitHub Pages at kcxain.github.io.
Development
# Install dependencies (requires Ruby, RubyGems, GCC, Make)
bundle install
# Start local dev server with livereload at http://127.0.0.1:4000
bash run_server.sh # runs: bundle exec jekyll liveserve
Architecture
_config.yml— Site-wide settings: author info, social links, Google Analytics, SEO keys, Jekyll plugins. Changes here require server restart._pages/about.md— The single content page (serves as/). Contains all sections: bio, news, publications, patents, education, experience, competitions, honors, services, visitors. Mixes inline CSS/JS with Liquid templates and HTML._data/publications.json— Publication entries rendered via Liquid loop in about.md. Each entry has:conf,year,conf_full,title,authors,links[](withtype: paper/code/blog)._data/news.json— News items. Supports eithercontent_html(raw HTML) or structured fields (date,title,link_url,text_after_link,venue)._layouts/default.html— Base layout wrapping all pages._includes/— Partials: author-profile sidebar, head/SEO tags, analytics, scripts._sass/— SCSS partials compiled by Jekyll. Custom styles for the about page are inline inabout.md, not in SCSS files.google_scholar_crawler/— Python script + GitHub Action that auto-updates citation stats daily. Pushesgs_data.jsonto thegoogle-scholar-statsbranch. RequiresGOOGLE_SCHOLAR_IDsecret.
Common Tasks
Adding a publication: Add a JSON object to _data/publications.json (most recent first). The template auto-renders it with venue tooltip, author highlighting (boldens “Changxin Ke”), and link icons.
Adding a news item: Add a JSON object to _data/news.json (most recent first). Use content_html for full control or structured fields for simpler entries.
Updating profile info: Edit _config.yml under author: for name, avatar, bio, social links, email.