Skip to content

Move the documentation to Hugo and Hextra, laid out like go-fileshare's - #2

Merged
tannevaled merged 2 commits into
mainfrom
hugo-hextra
Oct 9, 2026
Merged

tannevaled merged 2 commits into
mainfrom
hugo-hextra

Conversation

@tannevaled

Copy link
Copy Markdown
Contributor

Brings go-widgets/docs into line with go-fileshare/docs: same stack, same layout, same workflow, same versioning, same four languages.

Stack. MkDocs and mike are replaced by Hugo 0.167.0 with the tannevaled/hextra fork (submodule, v0.16.0) and go-widgets/brand (submodule, v0.1.0, tagged for this from go-widgets/brand#2). There is a navbar with a Projects menu (go-opentype, go-macos, go-freedesktop, wasmdesk), a version selector, a theme combo, search and GitHub. The teal is used as Hextra's primary colour, and table headers are #0F766E (5.5:1 for white text; the mark's own #0D9488 is 3.7:1).

Versions. go-widgets is 19 modules with no single release, so the label is the documentation's own minor version (params.docs.version: v0.2.0 → /docs/0.2/). scripts/publish-version.sh is fileshare's. It keeps the MkDocs-built 0.1 on gh-pages untouched, rewrites versions.json in mike's format, and moves latest. /docs/latest/modules/ keeps working.

Content. Two pages become 21, in EN/FR/ES/DE:

  • a first application (app-template, or a bare window)
  • rendering: the painter seam, the toolkit, skins
  • state: MVVM (mvvm, tkbind/tuibind, mvvmtk, undo), the data spine
  • surfaces: native window (7 back-ends and how Open chooses), application and tray, browser (webcanvas, wasmbox), terminal, Android, snapshots
  • CI rules: mvvmlint, bricolint
  • modules, and status

Facts were checked against each module's code at its newest tag. Several READMEs are behind their code: painter still lists 5 primitives (there are 7), window calls Wayland "future", and mvvmtk says toolkit never imports mvvm (it does, and exposes Label.Text() as an Observable). The pages follow the code.

Two claims of the old home page were false and are not repeated.

  • "100% statement coverage as a CI gate" for every module: mvvmtk has no coverage gate.
  • "Built and tested on" six architectures for every module: 12 of 19 do. bricolint's step is named "6 arches" but builds 5 (no loong64).
    The status page lists these gaps.

Translations keep every English anchor as an explicit {#id}, so relrefs with fragments resolve in every language. Each language was checked by script against the English: anchors in order, the same relrefs and URLs, identical code blocks, the same table shapes.

Verified locally

  • the production build with --panicOnWarning: EN 108, FR 104, ES 106, DE 106 pages
  • lychee offline with --include-fragments over the laid-out /docs/0.2/ tree: 0 errors
  • the links job's 48 external URLs: all resolve
  • rendered in Chrome, light and dark

Once this deploys, go-widgets/go-widgets.github.io#11 (the landing) can merge: its docs links point here.

🤖 Generated with Claude Code

MkDocs and mike are replaced by the stack go-fileshare/docs uses: Hugo with
the tannevaled/hextra fork, the org mark mounted from go-widgets/brand at
v0.1.0, a version selector reading mike's versions.json, and four languages
(English at the root, French, Spanish and German under their codes).

The site said what each module is and linked to pkg.go.dev, in two pages.
It now explains the stack: the painter seam, the toolkit, skins, MVVM and the
data spine, every surface (window back-ends, application and tray, browser,
terminal, Android, snapshots), the two CI rules, the modules, and a status
page saying what is proven live, what is only compiled and what CI does not
cover. Facts were checked against the modules' code at their newest tags;
where a README disagrees with its code, the pages follow the code.

Two claims of the old home page were false and are not carried over: every
module does not have a 100% coverage gate (mvvmtk has none), and every module
does not cross-compile for six architectures (twelve do).

0.1, the MkDocs build, stays on gh-pages as it was. /docs/latest/modules/
keeps working.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The links job fetches every https:// URL the README names, and /docs/0.2/
exists only once this branch has deployed: a check that cannot pass before
the merge it is gating. The table describes where a version goes; it does not
need to be a link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@tannevaled
tannevaled merged commit ab3301c into main Oct 9, 2026
3 checks passed
@tannevaled
tannevaled deleted the hugo-hextra branch October 9, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant