CLAUDE.md
CLAUDE.md
This file is the working guide for this website repository. It is meant to keep future edits consistent across Codex, Claude, and manual maintenance.
Authority
- Treat this file as the current source of truth for site structure and maintenance conventions.
AGENT.mdis historical context from an earlier redesign pass and may reference old file locations. UseCLAUDE.mdwhen the two disagree.
Site Basics
- Framework: Jekyll / Academic Pages / Minimal Mistakes
- Hosting target: GitHub Pages
- Build constraint: static-site compatible, no unsupported plugins
- Main config:
_config.yml - Main navigation:
_data/navigation.yml
Navigation-to-Folder Mapping
Top-level navigation content should live in folders that match the nav tabs.
- Home:
_pages/about.md - Profile:
_profile/index.md - Research:
_research/index.md - Software:
_software/index.md - Projects:
_projects/index.mdplus item pages in_projects/*.md - Publications:
_publications/index.mdplus item pages in_publications/*.md - Talks:
_talks/index.mdplus item pages in_talks/*.md - News:
_news/index.md - Personal:
_personal/index.md - Teaching:
_teaching/index.mdplus item pages in_teaching/*.md - CV route:
_pages/cv.md - Served CV file:
files/Yue_Chu_CV.pdf - CV source materials:
_CV/ - Legacy consulting route:
_pages/consulting.mdredirects to the consulting section on/projects/
Core Principle
If a section appears in the main website navigation, there should be one obvious matching folder where its content is maintained.
That means:
- Do keep nav-owned content in its matching folder.
- Do not scatter the same section across
_pages/and_data/unless there is a strong technical reason. - Do not create duplicate routed pages for nav sections in
_pages/if a folder-backed version already exists.
Current Structure Pattern
There are two patterns in use:
- Single-file section pages
- Used for
profile,research,software,news, andpersonal - The section lives in that folder’s
index.md - Structured lists for that section live in front matter arrays on the same file
- Used for
- Collection-backed sections
- Used for
projects,publications,talks, andteaching - The section landing page lives at that folder’s
index.md - Individual items live as separate Markdown files in the same folder
- Consulting and technical assistance entries are part of
_projects/*.mdand should useproject_group: consulting
- Used for
Important Implementation Detail
Folder landing pages inside collections use:
entry_type: index
This matters because archive loops must exclude the index document.
Examples:
_projects/index.md_publications/index.md_talks/index.md_teaching/index.md
When filtering collection items, always exclude entry_type: index.
Editing Rules
- When updating a nav section, edit the matching folder first.
- For curated research themes, edit
_research/index.md. - For software listings, edit
_software/index.md. - For curated news items, edit
_news/index.md. - For curated personal sections and fun updates, edit
_personal/index.md. - For featured publications used on the home and profile pages, edit
_publications/index.md. - For featured talks used on the talks landing page, edit
_talks/index.md. - For project cards and project detail pages, edit
_projects/*.md. - For consulting and technical assistance entries, create or edit
_projects/*.mdwithproject_group: consulting. - For publication detail pages, edit
_publications/*.md. - For talk detail pages, edit
_talks/*.md. - For teaching entries, edit
_teaching/*.md.
Publication Schema
Publication entries in _publications/*.md should use these fields when available:
paper_page_url: external landing page for the paperdoi: DOI string without extra prosedoi_url: DOI resolver URLpdf_url: direct PDF URL, either local or externalcode_url: code repository or download linkcode_label: optional custom label such asCode and dataposter_url: poster PDF URL when available
Legacy compatibility:
- Keep
paperurlpopulated for now because some older helper scripts still read it.
Publication Assets
Recommended local asset folders:
- Publication PDFs:
assets/pdfs/publications/ - Posters:
assets/pdfs/posters/
Current status:
- Some older paper PDFs still live in
files/. That is acceptable for now. - New local publication assets should prefer the
assets/pdfs/...structure unless there is a specific reason to keep them infiles/.
Design / UX Principles
- Keep the site academically professional but not visually cold.
- Prefer clear hierarchy, restrained color, and readable spacing over heavy decoration.
- Reuse includes for repeated cards and summary blocks.
- Preserve mobile responsiveness.
- Preserve existing public URLs whenever practical.
Do
- Keep reusable display logic in
_includes/ - Keep styling changes in the existing Sass/CSS structure
- Keep the homepage lightweight and directional
- Keep the GitHub Pages build compatible
- Add new nav sections only with a matching folder and clear ownership
Do Not
- Do not reintroduce nav-owned content into
_data/research.yml,_data/news.yml, etc. - Do not create a second copy of a nav page in
_pages/after a folder-backed version exists. - Do not remove
entry_type: indexfrom collection landing pages without updating the archive logic. - Do not add unsupported plugins or build steps that break GitHub Pages.
- Do not change public permalinks casually.
Current Decisions
- The homepage remains in
_pages/about.mdbecause it is the root route and is not part of the main nav list. - The CV remains a direct PDF experience.
/cv/redirects tofiles/Yue_Chu_CV.pdf. - Featured papers are stored with the publications landing page because they belong to the publications section.
- Featured talks are stored with the talks landing page because they belong to the talks section.
- Consulting is no longer a standalone navigation tab; consulting and technical assistance work now lives inside the projects collection.
- Research, news, and personal currently use single landing files with front matter arrays instead of one-file-per-item. This keeps the nav-to-folder mapping clean without generating unwanted extra pages.
Current Progress
Completed in the current structure pass:
- Moved nav-owned section content into matching folders
- Added folder-level
index.mdfiles for all top-level nav sections except Home and CV - Removed redundant
_pages/duplicates for nav sections - Removed the replacement
_data/*.ymlfiles that had become an extra maintenance surface - Updated the homepage to read featured research and publication content from the new folder-backed sources
- Merged consulting into projects and removed consulting from the main navigation
Known Follow-Ups
- Some talk item permalinks still end with
.mdin_talks/*.md; this is functional but not especially polished. - Some talk front matter uses inconsistent
collectionlabels such asPresentationorPoster; the pages still render, but normalization would be a good cleanup pass. - If desired later, Home could also be moved to a dedicated
_home/index.mdpattern for total symmetry.
Safe Next Steps
If we continue improving the site, these are good next tasks:
- Normalize talk permalinks to cleaner URLs.
- Normalize talk front matter fields across all talk entries.
- Decide whether news should stay curated in one file or become one-file-per-update with a custom non-output workflow.
- Add a lightweight maintenance note to the README pointing editors to
CLAUDE.md.
