site(com): Downloads and Documents, built from a release; the nav links; the release's SHA256SUMS covers every file (#126, #157) [skip ci]

The design canvas (v17) gains the Documents artboard -- the Book of Fabric and
the Dictionary of v4 first, then the book, the three volumes and the API
reference, each with its SHA-256, and the SSRN paper -- and Downloads and
Documents in every .com nav; Downloads' reading list becomes a pointer to
Documents. site/com/canvas/ copied from it.

site/com/build.py --release TAG --sums SHA256SUMS builds Downloads and
Documents from the release ([TAG], [RELEASE]/<file>, [SHA:<file>]; a file the
release's SHA256SUMS lacks fails the build). Without a release it builds Home,
Try it and Inquiries exactly as before -- byte for byte -- with no link to the
two pages, so they go live only with alpha.4. install.sh installs them when
built.

scripts/nightly.sh gitea-release: the release's SHA256SUMS now covers every
file it attaches -- the images' sums, then the PDFs and the Root CA's
certificate -- so `sha256sum -c SHA256SUMS` checks all of it and Documents
finds each sum. The Nexus artifacts keep their own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
This commit is contained in:
Claude
2026-11-10 11:38:50 +00:00
parent 1a9b142d80
commit be2c204d56
9 changed files with 337 additions and 14 deletions
+8 -1
View File
@@ -39,10 +39,17 @@ attach Main badge.jpg
attach Main captain-bob.jpg
page Inquiries "Inquiries" Inquiries.WebHome.xwiki
page TryIt "Try StarshipOS" TryIt.WebHome.xwiki
# Downloads and Documents exist once build.py has been given a release (#126, #157)
pages="/bin/view/Main/ /bin/view/Inquiries/ /bin/view/TryIt/"
if [ -f Downloads.WebHome.xwiki ] && [ -f Documents.WebHome.xwiki ]; then
page Downloads "Downloads" Downloads.WebHome.xwiki
page Documents "Documents" Documents.WebHome.xwiki
pages="$pages /bin/view/Downloads/ /bin/view/Documents/"
fi
echo "=== as a guest"
bad=
for u in /bin/view/Main/ /bin/view/Inquiries/ /bin/view/TryIt/ \
for u in $pages \
/bin/download/Main/WebHome/badge.jpg /bin/download/Main/WebHome/captain-bob.jpg; do
code=$(curl -s -o /dev/null -w '%{http_code}' "$base$u")
if [ "$code" = 200 ]; then echo " $u: 200"; else echo " $u: $code -- NOT readable"; bad=1; fi