CLAUDE.md

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

What This Is

A Jekyll-based academic personal website for Maximilian Voigt (Assistant Professor of Finance, HEC Montréal), built on the academicpages fork of the Minimal Mistakes theme. Deployed to GitHub Pages at https://maxvoigt.github.io.

Commands

# Install dependencies
bundle install

# Serve locally with live reload at localhost:4000
bundle exec jekyll liveserve

# Use dev config (disables analytics, sets localhost baseurl)
bundle exec jekyll liveserve --config _config.yml,_config.dev.yml

# Build only
bundle exec jekyll build

# Minify JS
npm run uglify

Architecture

Collections are the core content model. Each collection item is a Markdown file with YAML frontmatter:

  • _publications//publication/[slug]
  • _talks//talks/[slug]
  • _teaching//teaching/[slug]
  • _pages/ → static pages (about, CV, etc.)

Content generation: markdown_generator/ contains Python scripts and Jupyter notebooks that convert TSV spreadsheets (publications.tsv, talks.tsv) into collection Markdown files. Edit the TSV first, then regenerate rather than editing generated Markdown directly.

Layouts: _layouts/ wraps content. Key layouts: default.html (base, masthead hidden), single.html (articles with sidebar), talk.html (adds venue/location metadata), archive.html (listing pages).

Styling: SCSS in _sass/. Main entry point is assets/css/main.scss. Component files are organized by concern (_page.scss, _sidebar.scss, _navigation.scss, etc.).

Site config: _config.yml is the primary config. _config.dev.yml overrides for local development (disables analytics, sets url: http://localhost:4000).

Deployment: GitHub Actions (.github/workflows/jekyll.yml) builds and deploys on push to master.

Content Frontmatter

Publications use fields: title, collection, permalink, excerpt, date, venue, paperurl, citation.

Talks use: title, collection, type (Talk/Tutorial/etc.), permalink, venue, date, location.

Files and Assets

  • PDFs and downloadable files go in files/
  • Images go in images/
  • Navigation structure is defined in _data/navigation.yml