CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Academic personal website for Arnab Dey, built with Jekyll (via the github-pages gem) and hosted on GitHub Pages. Forked from the Academic Pages template (based on Minimal Mistakes Jekyll theme).
Build & Development Commands
# Install Ruby dependencies
bundle install
# Serve locally (http://localhost:4000)
bundle exec jekyll serve
# Serve with live reload
bundle exec jekyll liveserve
# Build JavaScript (minify vendor + plugins + _main.js into main.min.js)
npm run build:js
# Watch JS files and rebuild on change
npm run watch:js
Local dev uses _config.dev.yml to override the base _config.yml (sets localhost URL, disables analytics, uses expanded Sass).
Architecture
Static site generator: Jekyll with Liquid templates, kramdown Markdown, and SCSS styling.
Collections (defined in _config.yml): publications, talks, teaching, portfolio. Each collection lives in its corresponding _<name>/ directory with one Markdown file per entry. All collections output individual pages at /:collection/:path/.
Key directories:
_pages/— Static pages (about, cv, contact, projects, publications, teaching)_layouts/— HTML templates (default.html→single.html→ specialized layouts liketalk.html)_includes/— Reusable Liquid partials (author-profile, masthead, footer, sidebar, analytics/comment providers)_sass/— SCSS source files; compiled viaassets/css/main.scss_data/— YAML data files (navigation.ymlfor nav menu,authors.yml,ui-text.yml)markdown_generator/— Python scripts and Jupyter notebooks to generate collection Markdown from TSV data filesfiles/— Downloadable assets (PDFs);images/— image assets
Layout hierarchy: compress.html → default.html (masthead + footer) → single.html (author profile sidebar + content) → specialized layouts.
Navigation: Defined in _data/navigation.yml. Currently: Publications, Teaching, Projects, CV, Contact.
Content Conventions
Collection entries use YAML front matter with fields like title, collection, permalink, date, venue, excerpt, author_profile, and layout. Temporal content uses date-prefixed filenames (YYYY-MM-DD-title.md). Portfolio items use numbered filenames (portfolio-N.md or .html).
Configuration
All site-wide settings (author info, social profiles, plugins, collection definitions, defaults) live in _config.yml. Changes to _config.yml require restarting the Jekyll server.