This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Personal academic website for Louis Berthier (PhD Candidate, Applied Mathematics & ML, École Polytechnique). Built on the al-folio Jekyll theme, deployed to GitHub Pages at LouisTier.github.io.
# Local development with Docker (recommended)
docker compose up
# Local development without Docker (requires Ruby 3.3.5, ImageMagick, Python 3)
bundle install
bundle exec jekyll serve --livereload
# Production build (as CI does it)
JEKYLL_ENV=production bundle exec jekyll build
# CSS purging (run after build, as deploy workflow does)
npm install -g purgecss
purgecss -c purgecss.config.js
# Format Liquid templates
npx prettier --write "**/*.liquid"The Docker setup serves on localhost:8080 with live reload on port 35729. It auto-restarts Jekyll when _config.yml changes.
- Push to
mastertriggers.github/workflows/deploy.yml - Builds with
JEKYLL_ENV=production, purges CSS, deploys_site/to thegh-pagesbranch - Only triggers on changes to site-relevant files (assets, templates, scss, bib, yml, etc.)
_pages/— top-level site pages (about, cv, publications, talks, teaching, etc.). Unused pages live in_pages/unused/._bibliography/papers.bib— BibTeX file driving the publications page viajekyll-scholar_data/— structured data:cv.yml,coauthors.yml,repositories.yml,socials.yml,venues.yml_news/,_posts/,_projects/,_books/— content collections defined in_config.yml
_layouts/— Liquid layouts (about,page,post,bib,cv,distill, etc.)_includes/— reusable Liquid partials (header, footer, scripts, social, citations, etc.)_sass/— SCSS partials (_base.scss,_layout.scss,_themes.scss,_variables.scss)
_plugins/ contains Ruby plugins for the build:
cache-bust.rb— cache busting for assetsexternal-posts.rb— pulls posts from external RSS feedsgoogle-scholar-citations.rb,inspirehep-citations.rb— fetch citation countshide-custom-bibtex.rb— filters internal BibTeX fields from outputdownload-3rd-party.rb— downloads third-party libraries whenthird_party_libraries.download: truein config
_config.yml is the central config file. Key sections:
- Site metadata (name, URL, description)
- Feature flags (
enable_math,enable_darkmode,enable_masonry, etc.) third_party_libraries— CDN URLs and SRI hashes for all JS/CSS dependenciesscholar— jekyll-scholar settings for bibliography renderingjekyll-archives— year/tag/category archive generation
assets/ contains css/, js/, img/, json/resume.json (drives the CV page via jekyll-get-json), pdf/, jupyter/, bibliography/, and media files.
- Pages use YAML front matter for layout, title, permalink, and feature toggles
- The site owner uses
TODO (LouisTier):comments in config/pages to mark pending customizations - Bibliography entries in
papers.bibsupport custom fields (preview,pdf,code,slides,poster,arxiv,selected) that control rendering in_layouts/bib.liquid - Third-party libraries can be served from CDN (default) or downloaded locally by setting
third_party_libraries.download: true