CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Overview
This is an academic personal website for the Duality Lab (Jamie Davis) at Purdue ECE, built using Jekyll and the Minimal Mistakes theme. The site is hosted on GitHub Pages at https://davisjam.github.io.
Building and Running
Local Development
To run the site locally:
bundle install
bundle exec jekyll serve
For development with live reload and overrides:
bundle exec jekyll serve --config _config.yml,_config.dev.yml
The site will be served at http://localhost:4000.
Dependencies
- Jekyll 3.9.3
- Ruby with bundler
- Minimal Mistakes Jekyll theme
- Plugins: jekyll-feed, jekyll-sitemap, hawkins
Content Management
Publications
Publications are managed through a custom JSON-based workflow:
- Publications are stored in
markdown_generator/publications.json - To regenerate the publications page after editing the JSON:
./regen-pubs.shThis script removes comment lines from the JSON and runs
markdown_generator/publications.pyto generateauto-publications.md - The JSON schema supports:
- Publication types: journal, conference, workshop, arxiv, dissertation, patent, poster
- Fields: title, authors, venue, year, paperBasename, slidesBasename, artifactURL, videoURL, blogURL
- Awards: bestPaperAward, bestArtifactAward
- Control: suppress (to hide publications)
Site Structure
The site uses Jekyll collections:
_pages/: Main pages (about, research, teaching, service, etc.)_publications/: Individual publication pages (mostly auto-generated)_talks/: Talk entries_teaching/: Teaching entries_portfolio/: Portfolio items_layouts/: Custom layouts (single, talk, archive, etc.)_includes/: Reusable components (author-profile, archive-single, etc.)_sass/: SCSS stylesheetsfiles/: Static files like PDFsimages/: Image assets
Configuration
_config.yml: Main site configuration (author info, social links, collections, Jekyll settings)_config.dev.yml: Development overrides (localhost URL, expanded CSS)_data/navigation.yml: Site navigation menu structure_data/ui-text.yml: UI text strings for internationalization
Architecture Notes
Custom Publication Generator
The markdown_generator/ directory contains Python scripts and Jupyter notebooks for converting structured data (JSON/TSV) into markdown files:
publications.py: Generatesauto-publications.mdfrompublications.jsonpubsFromBib.py: Alternative BibTeX-based generatortalks.py: Generates talk pages from TSV
The publications generator creates formatted citations with icon links for PDFs, slides, code artifacts, videos, and blog posts. Publications are automatically sorted by year and grouped by type.
Theme Customization
This is a customized fork of Minimal Mistakes. Key customizations include:
- Custom masthead image logo (
title_mastheadImagein config) - Modified author profile layout
- Custom talk layout for presentations
- Publication-specific formatting and icons
Content Workflow
- Static pages are in
_pages/with YAML front matter - Publications are managed via JSON → Python script → auto-generated markdown
- Navigation is controlled via
_data/navigation.yml - Layouts in
_layouts/define page templates - Includes in
_includes/provide reusable components
Important Files
_config.yml: Site-wide configuration and metadataregen-pubs.sh: Regenerate publications pagemarkdown_generator/publications.json: Source of truth for publicationsauto-publications.md: Auto-generated publications page (do not edit directly)Gemfile: Ruby dependencies
