w5isp.com/CLAUDE.md

41 lines
1.9 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project
Static website for W5ISP (amateur radio callsign) built with [Zola](https://www.getzola.org/), a Rust-based static site generator.
## Commands
- `zola serve --drafts` - Local dev server with live reload, including drafts (default: http://127.0.0.1:1111). Always pass `--drafts` in dev so future-dated and draft posts are visible while working on them.
- `zola build` - Build site to `public/` directory (drafts excluded, which is what deploys need)
- `zola check` - Validate links and templates
## Architecture
This is a standard Zola project:
- **`content/`** - Markdown pages and blog posts. Zola uses `_index.md` for section pages and regular `.md` files for individual pages.
- **`templates/`** - Tera templates (Jinja2-like syntax). Key templates: `base.html` (layout), `index.html` (homepage), `page.html` (single page), `section.html` (section listing).
- **`sass/`** - SCSS stylesheets, auto-compiled by Zola (enabled in config).
- **`static/`** - Static assets served as-is (images, fonts, etc.).
- **`themes/`** - Zola themes (if using one).
## Deployment
- CI/CD via Forgejo Actions at `git.mcintire.me`
- Workflow: `.forgejo/workflows/deploy.yml`
- Triggers on push to `main`: builds with Zola, deploys via rsync over SSH
- Deploy target: `graham@skippy.w5isp.com:/home/graham/apps/w5isp.com/`
- Caddy serves the site from that directory
- Requires `DEPLOY_SSH_KEY` secret in Forgejo repo settings (ed25519 private key)
- Theme (`themes/zolanight`) is a git submodule — checkout needs `submodules: true`
- Zola version in workflow must match `zola.toml` format (0.22.1+, since older versions expect `config.toml`)
## Configuration
- Sass compilation: enabled
- Search index: disabled
- Syntax highlighting theme: Catppuccin Mocha
- Custom variables go in `[extra]` section of `zola.toml`