Project Guide
Project Guide
Overview
This repository is Lianggang Pan’s personal academic website, published at https://ligeaaa.github.io. It is based on the Academic Pages Jekyll template and the Minimal Mistakes theme. GitHub Pages builds the production site from the repository’s Jekyll source.
Main Structure
_config.yml: site metadata, author profile, friends, projects, collections, plugins, and other global Jekyll settings._data/navigation.yml: header navigation entries._pages/: standalone pages such as About, Friends, Projects, and Publications._posts/: dated blog posts._publications/,_talks/,_teaching/,_portfolio/: Jekyll collections._includes/and_layouts/: reusable Liquid templates and page layouts._sass/andassets/: site styling, JavaScript, fonts, and other static assets.images/andfiles/: user-facing media and downloadable files._site/: generated output; never edit it as source or commit it.Dockerfileanddocker-compose.yaml: reproducible local Jekyll environment.
Editing Conventions
- Preserve the existing YAML, Markdown, Liquid, HTML, and SCSS patterns.
- Add site-wide structured content, including friends and projects, in
_config.ymlunless an existing page defines a different source of truth. - Keep changes focused and avoid modifying generated files in
_site/. - Do not add dependencies unless the requested work requires them.
- Preserve unrelated user changes in a dirty worktree.
Internationalization
- English is the default language and keeps the root-level URLs.
- Simplified Chinese pages use matching paths below
/zh/. - Every localized page sets
langandalternate_urlin its front matter. - Shared interface copy lives in
_data/i18n.yml; navigation labels live in_data/navigation.ymlundermainandmain_zh. - Friends and projects store localized text in
_enand_zhfields in_config.yml. Publication documents use the same suffix convention. - When adding or changing user-facing content on a main page, update both languages and verify both routes plus their language-switch links.
Validation
- Run
git diff --checkafter every change. - For configuration changes, parse
_config.ymland confirm the expected data. - Build the complete site with:
docker compose -f docker-compose.yaml run --rm jekyll-site jekyll build --config _config.yml,_config_docker.yml - Inspect the generated page in
_site/for the changed content or behavior. - When external URLs are added, verify that they respond successfully when network access is available.
Mandatory Local Deployment
After every completed modification, rebuild and restart the local deployment so the user can verify the result. Use docker compose -f docker-compose.yaml up --build -d, confirm the changed page responds over HTTP, keep the deployment running, and report its local URL. If port 4000 is occupied by an unrelated process, use the next available port and report that URL instead. A successful build alone does not satisfy this requirement; the refreshed local deployment must be reachable.
