Files
2026-05-05 23:23:49 +03:00

45 lines
1.7 KiB
Markdown

# 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 to `site-nav` in `build.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
```sh
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-linux` and `aarch64-linux` (CI runs on Raspberry Pi)
- `emacs-nox` is 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.