CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build & Development Commands
# Install dependencies
bundle install
npm install # only needed if modifying JavaScript
# Run locally (with live reload)
jekyll serve -l -H localhost
# Site available at http://localhost:4000
# Build static site
jekyll build
# JavaScript minification (if modifying JS)
npm run uglify
npm run watch:js # watch mode
# Docker alternative
docker build -t jekyll-site .
docker run -p 4000:4000 --rm -v $(pwd):/usr/src/app jekyll-site
Architecture
This is a Jekyll-based academic website using the Minimal Mistakes theme (Academic Pages fork).
Content Collections
_talks/- Talk entries with date-prefixed filenames (YYYY-MM-DD-slug.md)_publications/- Research publications_pages/- Main site pages (about, cv, etc.)_posts/- Blog posts
Key Configuration
_config.yml- Site-wide settings, author info, collection definitions_data/navigation.yml- Main navigation menu_data/authors.yml- Author profiles
Layouts & Includes
_layouts/- Page templates (single.html for most content, talk.html for talks)_includes/- Reusable components (author-profile.html, masthead.html, footer.html)
Assets
_sass/- SCSS source files;_variables.scssfor colors/fontsassets/css/main.scss- Main stylesheet entry pointassets/js/- JavaScript files;_main.jsis source,main.min.jsis compiledimages/- Content imagesfiles/- Downloadable files (PDFs, etc.)
Content Generation Tools
markdown_generator/- Python/Jupyter notebooks to generate markdown from TSV datapublications.py/talks.py- Generate collection items from TSV files- Input:
publications.tsv,talks.tsv
Front Matter Formats
Talks
---
title: "Talk title"
kind: talks # talks | panels | posters | teaching — drives the colored tag
type: "Invited talk" # or "Panel", "Workshop"
permalink: /talks/YYYY-MM-DD-slug
venue: "Venue name"
date: YYYY-MM-DD
location: "City, Country"
---
Do not use a collection: front-matter key. Jekyll derives page.collection from the containing directory (_talks/ → talks) and that derived value shadows anything written in front matter, so the key is silently ignored. Use kind: instead — _includes/archive-single-talk.html reads it to render the tag, styled by .talk__tag--<kind> in _sass/_archive.scss.
Publications
---
title: "Publication title"
collection: publications
category: "manuscripts" # or "conferences", "books"
venue: "Journal/Conference"
date: YYYY-MM-DD
paperurl: "https://..."
citation: "Full citation"
---
Research
---
title: "Paper title"
collection: research
permalink: /research/YYYY-slug
year: 2024
authors: "Author1, Author2"
venue: "ICML"
venue_order: 6 # controls sort within same year (lower = displayed first)
arxiv_id: "2305.19473"
paperurl: "https://arxiv.org/abs/2305.19473"
codeurl: "https://github.com/org/repo" # optional
image: "research/slug.png" # optional
abstract: |
Abstract text...
bibtex: |
@article{...}
---
venue_order values
Within the same year, papers are sorted by venue_order ascending (1 = top of page):
- 1: NeurIPS
- 2: AISTATS
- 3: ICLR
- 4: ICML
- 5: TMLR (and other venues)
- 6: arXiv preprint
Pages
---
title: "Page title"
permalink: /page-slug/
author_profile: true
---
