Files
webcoredesktop/README.md
T
2026-10-28 15:08:48 -06:00

89 lines
4.4 KiB
Markdown

# 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/<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 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