CLAUDE.md
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.htmlis the only real layout. Nearly every content page useslayout: rootin frontmatter. The defaultminimatheme (declared in_config.yml) is mostly bypassed — onlyabout.markdownand the auto-generated blog still referencelayout: page, and they’re effectively vestigial._includes/nav.htmlrenders the primary top nav for every page.- Submenus are opt-in per page. A page sets
submenu: _nav.htmlin its frontmatter, androot.htmlwillinclude_relativethat file. The/college/*pages usecollege/_nav.htmlfor the college sub-nav. To add a section nav, drop a_nav.htmlnext to the section’s pages and reference it from frontmatter. _config.ymlstill has the Jekyll scaffold defaults (title “Your awesome title”, placeholder email, etc.). The customroot.htmllayout 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.cssis hand-written CSS (no Sass pipeline despite the.sass-cacheentry in.gitignore). The accent color is--accent: #ea4c89defined at:root.
Editing conventions worth knowing
- Frontmatter
name:is used as a human label for the page;title:drives the<title>tag viaroot.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.htmlis curated by hand and is intentionally short — adding/removing top-level links is a content decision, not an automatic reflection of pages on disk.