1.7 KiB
1.7 KiB
CLAUDE.md — Instructions for the Claude AI assistant
Project
Static personal website. Source in org files, built with Nix + Emacs org-publish. See README.org for full project structure and maintenance guide.
Key files
| File | Purpose |
|---|---|
flake.nix |
Nix flake — build derivation, run apps |
build.el |
org-publish config (pages + static assets) |
content/ |
Org source files → HTML pages |
static/ |
Static assets (CSS, images, fonts) |
Conventions
- New pages: add
content/<name>.org, add nav link tosite-navinbuild.el - Sub-projects: follow the three-step pattern in README.org (input → let binding → installPhase copy)
- CSS: edit
static/style.css; use existing custom properties (--bg,--fg, etc.) before adding new ones - No JS unless explicitly requested
- No new files unless clearly necessary — prefer editing existing ones
Build
nix build # produces result/ symlink with the full static site
nix run # build + serve at http://localhost:8080
The build runs emacs --batch --load ./build.el inside a Nix sandbox.
org-publish-use-timestamps-flag is nil so every build is a full rebuild.
Architecture notes
- Multi-arch:
x86_64-linuxandaarch64-linux(CI runs on Raspberry Pi) emacs-noxis used (headless, no display required)- Source is filtered with
pkgs.lib.cleanSource— avoid relying on files that would be excluded (e.g..git) public/is gitignored; never commit it
Updating README.org
Keep README.org up to date as the project evolves. It is the canonical human-readable documentation.