CLAUDE.md

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

Project Overview

Personal portfolio/blog website built with Pelican (Python SSG). Features a custom minimalist blue-accented theme with pages for About, Projects, Resume, Blog, and Contact.

  • Status: Complete — deployed-ready static site
  • Requirements: See readme.txt for original brief

Tech Stack

Layer Choice
SSG Pelican 4.x (Python)
Content Markdown + Frontmatter
Theme Custom Jinja2 templates
Code Highlighting Pygments
Deployment Vercel (static hosting)
Version Control Git

Project Structure

├── content/
│   ├── pages/        # Static pages (home, about, projects, resume, contact)
│   └── posts/        # Blog posts (hello-world.md)
├── theme/arvin/
│   ├── templates/    # 11 Jinja2 templates
│   └── static/css/   # style.css — complete theme
├── pelicanconf.py    # Local dev config
├── publishconf.py    # Production config (Vercel uses this)
└── vercel.json       # Vercel build/output settings

Build & Development Commands

# Install dependencies
pip install -r requirements.txt

# Local development (auto-reload on http://localhost:8000)
pelican content -s pelicanconf.py --autoreload --listen

# Production build
pelican content -s publishconf.py

# Direct output — static files in output/ directory

Architecture Notes

  • Homepage uses content/pages/home.md with template: home and save_as: index.html
  • Blog articles live at /blog/{slug}/
  • Blog listing at /blog/ (via INDEX_SAVE_AS = 'blog/index.html')
  • All pages extend base.html (header nav + footer)
  • Theme CSS uses system font stack, max-width 680px content, blue (#2563eb) accent color
  • Mobile responsive at 600px breakpoint

Deployment

  • Vercel: vercel.json configured — connect GitHub repo, set SITEURL env var to your domain
  • Build command: pelican content -s publishconf.py
  • Output directory: output/

Key Files

  • readme.txt — Original user requirements (Chinese)
  • pelicanconf.py — Main Pelican configuration
  • theme/arvin/static/css/style.css — Complete theme stylesheet
  • vercel.json — Deployment configuration
  • docs/superpowers/specs/2026-05-30-personal-blog-design.md — Design specification
  • docs/superpowers/plans/2026-05-30-blog-implementation.md — Implementation plan