- tools/build_wiki.py: host-agnostic generator — renders modules/** + capstone
into wiki pages with a unit-by-unit _Sidebar, a Home TOC, and a _Footer;
rewrites lab/ and repo-root links to absolute repo URLs (labs stay in the repo,
linked not copied). Single source of truth stays in modules/.
- .gitea/workflows/sync-wiki.yml + .github/workflows/sync-wiki.yml: sync the wiki
on every push to main touching modules/**, capstone/**, README, or the generator.
Documented prerequisites: an Actions runner + a WIKI_TOKEN secret (+ GitHub wiki
must be initialized once).
- tools/README.md: how to run the sync manually and via CI.
- README: "Read it as a book" pointer to the wiki.
The Gitea wiki has already been populated with the initial render.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TfzV5QvtPDz8LJS3Pu5VLT
A standalone blog/ folder (not course content) with drafts for jpaul.me:
an announcement, a getting-started piece, then a hybrid weekly series —
one post per module for Units 1-2 (posts 03-13) and one per unit for the
back half (14-16) plus a capstone finale (17). Each post carries WordPress
metadata, a [COURSE LINK] placeholder, and [insert screenshot] blocks for
Justin to fill before publishing. README.md holds the manifest + checklist.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015EghAChc9UbcF78t55mfdf