Federated CoreDesktop — Hugo Site
The website for Federated 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): 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, 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:
hugo new content software/<name>.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 menuscontent/— one file per page;content/software/holds one per catalog titledata/siblings.yaml— the projects listed in the sibling directorylayouts/— templates and section partialsstatic/css/style.css— the whole design systemstatic/video/— the home page's screen recording (WebM, MP4 and poster)static/images/coredesktop-logo.svg— the wordmark, drawn in the Federated lettering