CLAUDE.md

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

What this is

Rich Thornett’s personal website at thornett.com, a Jekyll site deployed via GitHub Pages. Pushing to main is the deploy — there is no separate build/release step. The CNAME file pins the custom domain.

Content is the point; the code is intentionally minimal. Most edits will be to markdown content (especially under college/) or the small set of layout/include files.

Common commands

bundle install                    # one-time setup / after Gemfile changes
bundle exec jekyll serve          # local dev server with live reload at http://127.0.0.1:4000
bundle exec jekyll build          # build into _site/ (rarely needed; GH Pages builds for you)

If _config.yml is edited, restart jekyll serve — it does not auto-reload that file.

Site structure that isn’t obvious from the file tree

  • _layouts/root.html is the only real layout. Nearly every content page uses layout: root in frontmatter. The default minima theme (declared in _config.yml) is mostly bypassed — only about.markdown and the auto-generated blog still reference layout: page, and they’re effectively vestigial.
  • _includes/nav.html renders the primary top nav for every page.
  • Submenus are opt-in per page. A page sets submenu: _nav.html in its frontmatter, and root.html will include_relative that file. The /college/* pages use college/_nav.html for the college sub-nav. To add a section nav, drop a _nav.html next to the section’s pages and reference it from frontmatter.
  • _config.yml still has the Jekyll scaffold defaults (title “Your awesome title”, placeholder email, etc.). The custom root.html layout doesn’t use them, so they’re harmless — don’t be misled into thinking they’re live.
  • _posts/ and /blog/ exist but the site doesn’t surface a blog. Treat them as dormant scaffolding unless explicitly asked to revive blogging.
  • assets/stylesheets/site.css is hand-written CSS (no Sass pipeline despite the .sass-cache entry in .gitignore). The accent color is --accent: #ea4c89 defined at :root.

Editing conventions worth knowing

  • Frontmatter name: is used as a human label for the page; title: drives the <title> tag via root.html. Some pages set one but not the other — match neighboring pages when in doubt.
  • Internal links use absolute paths (e.g. /college/counseling), not relative.
  • The nav in _includes/nav.html is curated by hand and is intentionally short — adding/removing top-level links is a content decision, not an automatic reflection of pages on disk.