CLAUDE.md

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

Overview

This is a Jekyll-based static website for the DeWitt Lab at the University of Washington. The site serves as the lab’s online presence showcasing research, publications, team members, and teaching materials.

Development Environment Setup

Prerequisites

Set up the Jekyll development environment using conda:

conda create -n jekyll -c conda-forge ruby c-compiler compilers cxx-compiler
conda activate jekyll

Installation and Local Development

Install dependencies:

bundle install

Serve the site locally:

bundle exec jekyll serve

The site will be available at http://localhost:4000

Site Architecture

Jekyll Configuration

  • Theme: Uses the minimal-mistakes remote theme
  • Configuration: _config.yml contains all site settings and metadata
  • Collections: Custom teaching collection for course materials
  • Plugins: GitHub Pages compatible plugins including jekyll-feed, jekyll-sitemap

Content Structure

  • Pages: Static pages in _pages/ directory (about, research, papers, etc.)
  • Posts: Blog posts in _posts/ directory
  • Teaching: Course materials in _teaching/ collection
  • Data: Site data in _data/ directory (authors, lab members, navigation)
  • Assets: CSS, JavaScript, and images in assets/ and images/ directories

Key Files

  • _config.yml: Jekyll configuration and site metadata
  • _data/lab_members.yml: Lab member information
  • _data/authors.yml: Author profiles for publications
  • _data/navigation.yml: Site navigation structure
  • assets/css/main.scss: Custom styling (modifies avatar display)
  • assets/js/: JavaScript for publications and BibTeX parsing

Content Management

  • Publications: Managed through BibTeX files and JavaScript parsing
  • Lab Members: Defined in YAML data files
  • Images: Stored in images/ directory
  • Teaching Materials: Organized in _teaching/ collection with support for PDF slides and Jupyter notebooks

Customizations

The site includes several custom JavaScript components:

  • BibTeX parser for publication listings
  • Dynamic publication filtering and display
  • Custom CSS modifications for the Minimal Mistakes theme

Build Process

The site is built using Jekyll and GitHub Pages:

  • Source files are processed by Jekyll
  • Built site is output to _site/ directory
  • GitHub Pages automatically builds and deploys the site

Important Notes

  • The site uses GitHub Pages which has specific plugin restrictions
  • All custom JavaScript and CSS should be placed in the assets/ directory
  • The _site/ directory is auto-generated and should not be edited directly
  • Changes to _config.yml require a server restart during development