CLAUDE.md

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

Project Overview

Personal portfolio and blog site for Zoë Farmer (ML/AI Engineer) at dataleek.io. Built with Jekyll using a fully custom dark theme (JupyterLab-inspired, no remote theme dependency).

Development Commands

Use just (see justfile in repo root) for all common tasks:

just serve       # Install deps and serve with live reload
just build       # Install deps and build static site
just install     # Install Ruby gem dependencies only
just notebooks   # Convert Jupyter notebooks (.ipynb) to markdown posts
just assets      # Convert all PDFs to page-image grids (Ghostscript)
just assets resume  # Convert PDF resume to PNG page images only

Python dependencies are managed with uv. The root pyproject.toml declares a workspace with presentations/ as a member. Use uv run / uv add — never pip.

Architecture

SCSS Design System

All design tokens live in _sass/_variables.scss:

Key SCSS partials:

_includes/pdf-gallery.html renders a PDF as a responsive thumbnail grid with a lightbox viewer (keyboard navigation: arrow keys, Escape). Parameters:

Parameter Description
pdf Path to the PDF download link
dir Directory containing pre-converted page-N.png images
pages Total page count
id Unique slug (used for DOM IDs)
landscape Optional; set for widescreen aspect ratio

Page images are generated by uv run assets/build_assets.py pdfs, which outputs {pdf_parent}/{pdf_stem}/page-N.png at 200 DPI using Ghostscript.

Content Conventions