diff options
| author | Danilo M. <danix@danix.xyz> | 2026-06-26 18:18:10 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-06-26 18:18:10 +0200 |
| commit | 0ea896046016cf11cae89c85cc62a8027f6c3a3d (patch) | |
| tree | 9e0f255e15bcbbabcce37595cc53f7c8375ae6bc | |
| parent | a5fd7accc41cdab61fbce03871a315cf5e8139e5 (diff) | |
| download | danixxyz-0ea896046016cf11cae89c85cc62a8027f6c3a3d.tar.gz danixxyz-0ea896046016cf11cae89c85cc62a8027f6c3a3d.zip | |
docs: document Slackware project pages in CLAUDE.md and WORKFLOW.mdrelease_26062026-1819
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
| -rw-r--r-- | CLAUDE.md | 21 | ||||
| -rw-r--r-- | WORKFLOW.md | 95 |
2 files changed, 116 insertions, 0 deletions
@@ -23,6 +23,27 @@ DO NOT write code for shortcodes without consulting the user first. Implement: **Documentation**: Update `SHORTCODES.md` with usage examples for every tool. +## 🐧 Slackware Project Pages +A dedicated Hugo section (`content/{en,it}/slackware/`) for long-form project +references, distinct from dated articles. The clickable **Slackware** hub +(`/slackware/`) explains why Slackware is used and aggregates every project as +a styled row; each project has its own full page. +- **Authoring**: drop a folder with `index.md` per project; it appears on the + hub automatically. Light front-matter schema: `tagline`, `status` (string + badge: active/maintained/wip/archived), optional `repo_url`, `tags`. Body is + freeform markdown. +- **Images**: inferred by filename as page resources — `thumbnail.*` (3:2 row + image) and `header.*` (wide banner above the project title). Mono-glyph + fallback when no thumbnail. +- **Taxonomy + search**: project `tags` reuse the shared site `tags` taxonomy + (term pages aggregate articles + projects) and projects are in the search + index. +- **Menu**: top-level entries renamed — **Projects** (external → git.danix.xyz) + and a **Slackware** parent whose submenu holds **Packages** (the package-repo + page) and, optionally, project pages. The submenu is a full-width second row + that expands the frosted header on hover/focus (CSS-only, keyboard-accessible). +- See `WORKFLOW.md` → "Working with Slackware Project Pages" for the recipes. + ## 🎨 Design & UX - **Identity**: Maintain the font stack and palettes from `danix.me`. - **Accent**: Primary Purple. Modern aesthetic with an open-source/hacker soul. diff --git a/WORKFLOW.md b/WORKFLOW.md index f142fcd..3f8585e 100644 --- a/WORKFLOW.md +++ b/WORKFLOW.md @@ -113,6 +113,101 @@ Add a menu entry in `hugo.toml` with `params.external = true`: --- +## Working with Slackware Project Pages + +The **Slackware** section (`/slackware/`) is a hub that aggregates long-form +project pages — the official reference for each project, distinct from dated +articles. The hub lists every project as a styled row; each project gets its +own full page. Add a project by dropping a folder; it appears on the hub +automatically. + +### Add a project + +```bash +cd ~/Programming/GIT/danix.xyz-hacker-theme +mkdir -p content/en/slackware/my-project content/it/slackware/my-project +# create index.md in each (see schema below) +# drop the two images in each folder (see image roles below) +git add content/en/slackware/my-project content/it/slackware/my-project +git commit -m "content: add slackware project 'my-project'" +git push origin master +# then deploy: +git checkout production && git merge master && git push origin production && git checkout master +``` + +### Project front-matter (light schema) + +```toml ++++ +title = "My Project" +tagline = "One-line what-and-why, shown under the title." +status = "active" # active | maintained | wip | archived +repo_url = "https://git.danix.xyz/my-project" # optional, renders a "View repository" button +tags = ["bash", "slackbuild"] # shared site taxonomy + tech pills ++++ + +Freeform markdown body: what it is, how it works, rationale. Any headings +or shortcodes. +``` + +- **status** → colored badge (theme-aware vars, WCAG-AA text): `active`=green, + `maintained`=blue, `wip`=amber, `archived`=muted. It's a plain string you + set by hand — not derived from git. +- **tags** feed BOTH the rendered tech pills AND the global `tags` taxonomy, + so `/tags/bash/` lists this project alongside any article tagged `bash`. + Projects are also included in the site search index. +- **tagline** / **repo_url** are optional. + +### Image roles (inferred by filename, no front-matter) + +Drop these as page resources **inside the project folder** (next to `index.md`): + +| File | Role | Recommended size | +|---|---|---| +| `thumbnail.jpg` | Row image on the `/slackware/` hub | 3:2 landscape, ~900×600 | +| `header.jpg` | Full-width banner above the title on the project page | wide, ~1920×480 | + +- Any extension works (`.jpg`/`.png`/`.webp`); they're matched as `thumbnail.*` / `header.*`. +- If `thumbnail.*` is absent, the row falls back to a mono-glyph block (first + two letters of the title on an accent panel). +- If `header.*` is absent, the project page simply has no banner. +- Put copies in BOTH the EN and IT project folders so each language renders + its own images. + +### Add a project to the Slackware submenu (optional) + +Projects appear on the hub automatically. To ALSO list one in the desktop +submenu / mobile sub-list under "Slackware", add a menu block to its +front-matter (the label falls back to the page title): + +```toml +[menus.main] + parent = "slackware" + weight = 10 +``` + +The "Packages" entry (the package-repository page) is always in this submenu, +configured in `hugo.toml`. + +### Edit the hub's intro text + +The "why Slackware" prose at the top of `/slackware/` is the freeform body of +`content/{en,it}/slackware/_index.md`. Edit it like any markdown; the project +rows render below it. + +### Delete a project + +```bash +cd ~/Programming/GIT/danix.xyz-hacker-theme +git rm -r content/en/slackware/my-project content/it/slackware/my-project +git commit -m "content: remove slackware project 'my-project'" +git push origin master +# then deploy: +git checkout production && git merge master && git push origin production && git checkout master +``` + +--- + ## Working on the Theme You have two equivalent ways to edit the theme. Pick one based on context. |
