CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Philosophy
This is a low-traffic personal website. Prioritize code simplicity and developer ergonomics over performance, scalability, or abstraction. Suggest simplifications whenever you see an opportunity.
Commands
# Local development server (localhost:4000)
bundle exec jekyll serve --trace --drafts
# With local config overrides (e.g. local API endpoints); _config.local.yml is gitignored
bundle exec jekyll serve --trace --drafts --config _config.yml,_config.local.yml
# Generate resume PDF from _data/resume.yml
./build_resumes.sh [DATE_FOR_BACKUP]
# Import plant data from CSV
./import_plants.sh [CSV_FILE]
Architecture
Jekyll static site hosted on GitHub Pages. Uses the minima 2.5.1 theme with SCSS overrides in assets/main.scss. No Node.js/npm — pure Ruby/Jekyll.
Content sources:
- Markdown pages in root (
travels.md,plants.md,about.md,resume.md, etc.) - Blog posts in
_posts/, articles in_more/(a Jekyll collection outputting to/more/:path) - YAML data files in
_data/:travels.yml,resume.yml,image_source.yml - Plant database:
_data/plants.csv
Interactive features use inline JavaScript within Markdown pages:
travels.md— MapLibre GL 3.6.2 interactive map with GPX tracks (assets/gpx/), iNaturalist GeoJSON observations (assets/observations/), waypoint search via external API (travel_log_waypoint_search_apiin_config.yml), and multi-tab trip filtering configured in_data/travels.ymlplants.md— DataTables 1.10.20 for sortable/filterable plant database
Resume is data-driven: _data/resume.yml → JSON conversion → LaTeX compilation via LuaLaTeX → PDF in assets/resume/.
Image attribution is tracked in _data/image_source.yml and rendered via _includes/sourced_image.html.