Site: roro9stack.net phase 1 (home, Install with a browser flasher, Downloads), and a CI split for site changes #61

Merged
twisla merged 6 commits from site into main 2026-10-06 16:33:07 +00:00
4 changed files with 10 additions and 6 deletions
Showing only changes of commit 9415c62132 - Show all commits
+2 -2
View File
@@ -10,5 +10,5 @@
managed_components/
sdkconfig.*
# The built site
site/public/
# The built site (site/config.toml sends it here)
/public/
+1
View File
@@ -68,6 +68,7 @@ Changed before it ships:
## As built (phase 1)
- **CI is split.** `ci.yml` (the firmware) has `paths-ignore: site/**, docs/**, README.md, CONTEXT.md` on pushes to `main` and on pull requests. `site.yml` runs `zola check` and `zola build` with a Zola pinned by its checksum, then `site/tools/check_site.py`, when those files change. Gitea's own source (v1.24, read, not run against the 1.27 server) shows that path filters count as matched for tag pushes, so a tag still releases. A change that touches both runs both.
- **The build output** goes to `public/` at the root of the repository, not into `site/`: `output_dir = "../public"` in `site/config.toml`, so `zola build` in `site/` and `zola --root site build` from the root agree, and git ignores `/public/`.
- **The site** is in `site/`: `config.toml`, templates (base, home, install, downloads, 404), `data/` for the App cards and the screenshots' captions, `static/` (stylesheet, theme switch, fonts, wordmark, icons, real screenshots, the vendored flasher). `site/README.md` says how to build it and what the server needs.
- **The home page** follows the design. Changed from it: the hero and the mesh card promise nothing that isn't built (the mesh messenger is a "planned" card), an Install button first, a status box, a "what you need" row, a section of real screenshots, the updates section says the device installs releases itself, an independence line and a statement about cookies and third-party requests in the footer, the latest version read from the Gitea API at build time, and the nav's Wiki replaced. The two hero drawings are generated by `site/tools/make_illustrations.py` (a port of the design's scripted shapes) as inline SVG.
- **The focus ring.** `clip-path` clips outlines, so a focused notched control drops its notches and shows square corners and its ring.
+4 -4
View File
@@ -14,12 +14,12 @@ tools/ make_illustrations.py, check_site.py
## Build and look
```sh
docker run --rm -u "$(id -u):$(id -g)" -v "$PWD/site:/app" -w /app ghcr.io/getzola/zola:v0.22.0 build # public/
docker run --rm -u "$(id -u):$(id -g)" -p 1111:1111 -v "$PWD/site:/app" -w /app ghcr.io/getzola/zola:v0.22.0 serve --interface 0.0.0.0
python3 site/tools/check_site.py site/public # what the pages promise, kept
docker run --rm -u "$(id -u):$(id -g)" -v "$PWD:/repo" -w /repo/site ghcr.io/getzola/zola:v0.22.0 build # writes ./public
docker run --rm -u "$(id -u):$(id -g)" -p 1111:1111 -v "$PWD:/repo" -w /repo/site ghcr.io/getzola/zola:v0.22.0 serve --interface 0.0.0.0
python3 site/tools/check_site.py public # what the pages promise, kept
```
Or `zola build` with a Zola of your own. The build reads the latest release and the list of releases from the Gitea API (`load_data`); if the server can't be reached, the pages say so instead of failing.
Or `zola build` with a Zola of your own, in `site/` (or `zola --root site build` from the root). **The output goes to `public/` at the root of the repository,** not into `site/`: `output_dir` in `config.toml`, and git ignores that directory. The build reads the latest release and the list of releases from the Gitea API (`load_data`); if the server can't be reached, the pages say so instead of failing.
## Publishing
+3
View File
@@ -6,6 +6,9 @@ default_language = "en"
compile_sass = false
build_search_index = false
generate_feeds = false
# The built site goes to public/ at the root of the repository (git ignores it), whether Zola is run
# from site/ or from the root with `--root site`.
output_dir = "../public"
[markdown]
smart_punctuation = false