summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-06-26 18:18:10 +0200
committerDanilo M. <danix@danix.xyz>2026-06-26 18:18:10 +0200
commit0ea896046016cf11cae89c85cc62a8027f6c3a3d (patch)
tree9e0f255e15bcbbabcce37595cc53f7c8375ae6bc
parenta5fd7accc41cdab61fbce03871a315cf5e8139e5 (diff)
downloaddanixxyz-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.md21
-rw-r--r--WORKFLOW.md95
2 files changed, 116 insertions, 0 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
index 14b7719..9c58a36 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -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.