45 lines
1.7 KiB
Markdown
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.
|