# Federated CoreDesktop — Hugo Site The website for [Federated CoreDesktop](https://gitea.federated.computer/Federated_Computer/coredesktop), the scripts that turn a fresh Arch Linux + GNOME install into a tiling, keyboard-first desktop. Its look follows the Federated Computer site ([hammerfest](https://gitea.federated.computer/Federated_Computer/hammerfest)): a navy top bar and hero, bands that alternate white and light grey, Inter headlines and rounded cards, recolored here with a magenta accent and a cyan primary button. ## Requirements - [Hugo](https://gohugo.io/), v0.146 or newer (tested on v0.168.0 extended). ## Running it locally ``` hugo server ``` Then open http://localhost:1313/. ## Building for production ``` hugo --minify ``` Output goes to `public/` (ignored by git). Links are relative, so the build also works from any subfolder or straight from disk. ## How pages are built Every page's content lives in its front matter as a `sections:` list. Each section has a `type` plus the fields that type needs, and `layouts/partials/render-sections.html` hands it to the matching partial in `layouts/partials/sections/`. To change copy, edit `content/*.md`; to change how a section type looks, edit its partial. | Type | Fields | |-------------|--------| | `hero` | `eyebrow`, `title`, `subhead`, `ctas`, `compact`. On the right: `log` (a typed-out terminal; lines take `tag`, `text`, `think`, `done`; `logTitle` sets the title bar), otherwise the three-pane tiling visual (`tiles` relabels the panes; `visual: false` drops it). `video` (a path without extension, e.g. `/video/ultrawide-desktop`, with `.webm`, `.mp4` and a `.jpg` poster in `static/`) instead runs a looping screen recording full width under the copy; `videoTitle` and `videoLabel` set its window bar and description | | `text` | `kicker`, `headline`, `body` (Markdown, including fenced code), `ctas`. Without a headline, the body renders as a large statement; `*em*` is magenta | | `command` | `kicker`, `headline`, `lede`, `command` (defaults to the install command), `prompt`, `note` | | `features` | `items` of `label` + `body` | | `cards` | `columns`, `items` of `label`, `title`, `body`, `link`, `linktext` | | `steps` | `items` of `title` + `body` | | `checklist` | `items` (Markdown strings) | | `split` | `columns` of `title` + `items` (the first column is dark) | | `stats` | `items` of `value` + `label` (numbers count up) | | `table` | `headers`, `rows` (lists; the first cell labels the row) | | `siblings` | The sibling directory, from `data/siblings.yaml` (see the comment at its top). `emptyText` and `emptyCtas` set what shows while it's empty | | `catalog` | The software catalog: every page in `content/software/`, grouped by `params.softwareGroups`, with a filter box | | `faq` | `items` of `q` + `a` | | `callout` | `text` | | `final-cta` | `headline`, `body`, `ctas` (the navy closing band) | Every type also takes `kicker`, `headline`, `lede` and `id` (an anchor; without one, it's made from the kicker or headline). `ctas` is a list of `label`, `url` and `style` (`primary`, `ghost` or `text`). ## The software catalog Each title CoreDesktop installs has a page in `content/software/`, rendered by `layouts/software/single.html`; `content/software/_index.md` is the Software page itself. A title's facts go in its front matter: `category` (one of the `params.softwareGroups` names in `hugo.toml`, which also sets the order of the groups), `tagline`, `source` (`pacman`, `AUR`, `Flathub`, `installer`, `mise` or `extension`), `package`, `command`, `replaces`, `website`, `code` (the source repository) and `links`. The body has three sections: What it is, Why it's here and On CoreDesktop. To add a title: ```sh hugo new content software/.md --kind software ``` Code blocks and `command` sections get a Copy button from the script in `layouts/_default/baseof.html`. ## Where things live - `hugo.toml` — site settings (`params.repoUrl`, `params.installCommand`) and the menus - `content/` — one file per page; `content/software/` holds one per catalog title - `data/siblings.yaml` — the projects listed in the sibling directory - `layouts/` — templates and section partials - `static/css/style.css` — the whole design system - `static/video/` — the home page's screen recording (WebM, MP4 and poster) - `static/images/coredesktop-logo.svg` — the wordmark, drawn in the Federated lettering