diff --git a/.gitignore b/.gitignore index 9150fb3..25b129d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,5 +10,5 @@ managed_components/ sdkconfig.* -# The built site -site/public/ +# The built site (site/config.toml sends it here) +/public/ diff --git a/docs/milestones/W1.md b/docs/milestones/W1.md index b0b3733..31548a7 100644 --- a/docs/milestones/W1.md +++ b/docs/milestones/W1.md @@ -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. diff --git a/site/README.md b/site/README.md index 4c90b46..279537c 100644 --- a/site/README.md +++ b/site/README.md @@ -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 diff --git a/site/config.toml b/site/config.toml index b7674c7..7c1fe22 100644 --- a/site/config.toml +++ b/site/config.toml @@ -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