73 lines
3.5 KiB
Markdown
73 lines
3.5 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 |
|
|
| `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`).
|
|
|
|
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
|
|
- `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
|