This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is Francis' personal portfolio website built with Jekyll and hosted on GitHub Pages. The site automatically deploys when pushing to the main branch.
# Build the Docker image
docker build -t francisfuzz-site .
# Run the container (includes live reload on port 35729)
docker run -d --rm --name francisfuzz-site -p 4000:4000 -p 35729:35729 francisfuzz-site
# View logs
docker logs -f francisfuzz-site
# Stop the container
docker stop francisfuzz-siteSite will be available at http://localhost:4000
# Install dependencies
bundle install
# Run Jekyll server
bundle exec jekyll serve
# View at http://localhost:4000Note: The eventmachine gem has known compilation issues on macOS. Use Docker if you encounter installation problems.
_posts/: Blog posts in Markdown format. Filename convention:YYYY-MM-DD-title.md_layouts/: Reusable HTML templatesdefault.html: Base layout with navigation, footer, and inline CSSpost.html: Wraps blog posts with title and date metadata
index.md: Homepage "About" contentresume.md: Resume/CV pageposts.md: Blog posts indexpublic/: Static assets (fonts, favicon, feed.xml)
- Permalink structure:
/posts/:year/:month/:day/:title/ - Plugins:
jekyll-feed(RSS),jekyll-seo-tag(meta tags) - Live reload disabled to avoid eventmachine dependency issues
- Kramdown markdown processor
The site uses a two-layer layout hierarchy:
default.htmlprovides the base structure (header, nav, footer, CSS)post.htmlinherits fromdefault.htmland adds article markup with date formatting- Pages specify their layout via front matter:
layout: defaultorlayout: post
All CSS is inline in _layouts/default.html (lines 10-45). Uses system fonts and GitHub-inspired color scheme (#0366d6 for links, #e1e4e8 for borders).
GitHub Pages automatically builds and deploys from the main branch. No manual build or deployment steps required.