1.9 KiB
1.9 KiB
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, 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--draftsin dev so future-dated and draft posts are visible while working on them.zola build- Build site topublic/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.mdfor section pages and regular.mdfiles 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_KEYsecret in Forgejo repo settings (ed25519 private key) - Theme (
themes/zolanight) is a git submodule — checkout needssubmodules: true - Zola version in workflow must match
zola.tomlformat (0.22.1+, since older versions expectconfig.toml)
Configuration
- Sass compilation: enabled
- Search index: disabled
- Syntax highlighting theme: Catppuccin Mocha
- Custom variables go in
[extra]section ofzola.toml