# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## What this repo is Web frontend for `packages.danix.xyz` — an Apache autoindex-based Slackware package repository. Apache serves directory listings; this repo provides the HTML chrome injected around them. ## How header/footer injection works Apache's `HeaderName` / `ReadmeName` directives (in `.htaccess`) point to `_header.html` and `_footer.html`. These static files are generated by `gen_web_hook.sh`, which walks `$PKGREPO/{category}/{package}/` and writes a pair at each level. Run standalone or as a slackrepo `HOOK_FINISH` hook. ## Repository directory structure (on server) ``` /var/www/pkgs/ ← REPO_ROOT (depth 0) category/ ← depth 1 pkgname/ ← depth 2 pkgname-ver.txz pkgname-ver.txt ← parsed for title/description/Homepage pkgname-ver.meta ← parsed for compressed/uncompressed sizes ``` ## CSS design system CSS variables defined on `:root`: - Colors: `--bg`, `--bg-card`, `--bg-hover`, `--border`, `--accent`, `--accent-dim`, `--accent2`, `--green`, `--text`, `--text-dim`, `--text-head` - Fonts: `--mono` (IBM Plex Mono), `--sans` (IBM Plex Sans) — loaded from Google Fonts ## Static assets Asset layout under `$PKGREPO/.assets/` (served from `/.assets/`, hidden via `IndexIgnore .assets`): - `.assets/js/matrix-rain.js` — matrix rain canvas animation. Loaded via `