Skip to content

Commit ddf992c

Browse files
committed
feat: add CLAUDE.md
1 parent b560863 commit ddf992c

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

CLAUDE.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is Francis' personal portfolio website built with **Jekyll** and hosted on **GitHub Pages**. The site automatically deploys when pushing to the `main` branch.
8+
9+
## Development Commands
10+
11+
### Docker (Recommended)
12+
```shell
13+
# Build the Docker image
14+
docker build -t francisfuzz-site .
15+
16+
# Run the container (includes live reload on port 35729)
17+
docker run -d --rm --name francisfuzz-site -p 4000:4000 -p 35729:35729 francisfuzz-site
18+
19+
# View logs
20+
docker logs -f francisfuzz-site
21+
22+
# Stop the container
23+
docker stop francisfuzz-site
24+
```
25+
26+
Site will be available at http://localhost:4000
27+
28+
### Native Ruby (Alternative)
29+
```shell
30+
# Install dependencies
31+
bundle install
32+
33+
# Run Jekyll server
34+
bundle exec jekyll serve
35+
36+
# View at http://localhost:4000
37+
```
38+
39+
**Note:** The `eventmachine` gem has known compilation issues on macOS. Use Docker if you encounter installation problems.
40+
41+
## Architecture
42+
43+
### Content Structure
44+
- **`_posts/`**: Blog posts in Markdown format. Filename convention: `YYYY-MM-DD-title.md`
45+
- **`_layouts/`**: Reusable HTML templates
46+
- `default.html`: Base layout with navigation, footer, and inline CSS
47+
- `post.html`: Wraps blog posts with title and date metadata
48+
- **`index.md`**: Homepage "About" content
49+
- **`resume.md`**: Resume/CV page
50+
- **`posts.md`**: Blog posts index
51+
- **`public/`**: Static assets (fonts, favicon, feed.xml)
52+
53+
### Jekyll Configuration (`_config.yml`)
54+
- **Permalink structure**: `/posts/:year/:month/:day/:title/`
55+
- **Plugins**: `jekyll-feed` (RSS), `jekyll-seo-tag` (meta tags)
56+
- **Live reload disabled** to avoid eventmachine dependency issues
57+
- Kramdown markdown processor
58+
59+
### Layout System
60+
The site uses a two-layer layout hierarchy:
61+
1. `default.html` provides the base structure (header, nav, footer, CSS)
62+
2. `post.html` inherits from `default.html` and adds article markup with date formatting
63+
3. Pages specify their layout via front matter: `layout: default` or `layout: post`
64+
65+
### Styling
66+
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).
67+
68+
## Deployment
69+
70+
GitHub Pages automatically builds and deploys from the `main` branch. No manual build or deployment steps required.

0 commit comments

Comments
 (0)