CLAUDE.md

CLAUDE.md

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

Commands

# Install dependencies
bundle install
npm install

# Development server (localhost:4000, auto-rebuilds)
bundle exec jekyll liveserve --config _config.yml,_config.dev.yml

# Production build → outputs to _site/
bundle exec jekyll build

# Minify JS assets
npm run build:js

# Watch JS for changes
npm run watch:js

Deploy Workflow

_site/ is a git submodule pointing to https://github.com/vb000/vb000.github.io.git (the live GitHub Pages repo). To deploy:

bundle exec jekyll build

cd _site
git add -A
git commit -m "deploy"
git push

cd ..
git add _site
git commit -m "update submodule pointer"

Architecture

This is a Jekyll static site using a customized Academic Pages theme (fork of Minimal Mistakes). Key config is split across _config.yml (production) and _config.dev.yml (dev overrides: localhost URL, expanded Sass, analytics off).

Collections (_publications/, _talks/, _teaching/, _portfolio/) each output to /:collection/:path/ URLs. The _posts/ directory uses standard Jekyll blog permalinks.

Layouts live in _layouts/ — most pages use single, talks use talk. All content uses author_profile: true by default (set via defaults in _config.yml, no need to repeat in front matter).

Content Front Matter

Publications (_publications/YYYY-MM-DD-slug.md):

title: "Paper Title"
collection: publications
permalink: /publication/YYYY-MM-DD-slug
date: YYYY-MM-DD
venue: "Conference or Journal"
paperurl: "https://..."
excerpt: "One-line summary"
citation: "Full citation string"

Talks (_talks/YYYY-MM-DD-slug.md):

title: "Talk Title"
collection: talks
type: "Talk"
permalink: /talks/YYYY-MM-DD-slug
venue: "Conference Name"
date: YYYY-MM-DD
location: "City, Country"

Teaching / Portfolio follow the same pattern with type: for teaching (e.g. "Graduate course").

Bulk Content Generation

markdown_generator/ contains Python scripts and Jupyter notebooks to generate collection markdown files from TSV data:

  • publications.py / publications.tsv_publications/
  • talks.py / talks.tsv_talks/
  • pubsFromBib.py → from BibTeX

Run the Python scripts directly: python markdown_generator/publications.py