Repository navigation
Move the docs to Hugo + Hextra, built like go-fileshare/docs - #27
Merged
Merged
Conversation
The site was MkDocs Material + mike. It is now a Hugo site on the tannevaled/hextra fork (submodule, pinned at v0.16.0) with go-ndarray's brand (submodule go-ndarray/brand), laid out like go-fileshare/docs: content/en/, the version selector reading versions.json, the page history script from the theme, and a docs.yml workflow with a pinned, checksummed Hugo that builds, checks links offline and online, and publishes one version into gh-pages with scripts/publish-version.sh. The version label is now ndarray's minor version, read from params.ndarray.version (v0.9.1 -> 0.9); MkDocs kept publishing it as 0.2. 0.1/ and 0.2/ stay on gh-pages as they were published. performance.md and security.md keep their mirrored text verbatim; the heading hook adds MkDocs' anchor where Hugo's differs, so their in-page links and links published under MkDocs keep working. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er the first deploy Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The documentation site moves from MkDocs Material + mike to Hugo + the tannevaled/hextra fork, built the same way as go-fileshare/docs:
themes/hextrasubmodule pinned at v0.16.0 (the tag go-fileshare uses);brandingsubmodule = go-ndarray/brand (mark, favicons, PNGs).hugo.yaml: navbar version › theme › search › GitHub, related-sites menu (landing, playground), page subtitle + history,darkreaderLock, flexsearch.#047857(light) /#34D399(dark) as Hextra's primary, inassets/css/custom.css(the MkDocs site used Material'sgreen).content/en/(English only, ready for more languages),i18n/en.yaml.layouts/_partials/custom/version-select.htmlandscripts/publish-version.shfrom go-fileshare;versions.jsonstays in mike's format,latestis a symlink, the root redirects tolatest/..github/workflows/docs.yml: Hugo 0.167.0 pinned by sha256, page-history script from the theme,--panicOnWarningbuild, offline lychee link/anchor check, an external-link job, and a deploy job (main only,gh-pages-deployconcurrency group, no force push) that replaces only its own version directory.Versions
The version label is now ndarray's MAJOR.MINOR, read from
params.ndarray.version: v0.9.1→/docs/0.9/, andlatestmoves to it. MkDocs kept publishing the content as0.2although the library is at v0.9.1.0.1/and0.2/on gh-pages are not touched and stay listed inversions.json(0.9 latest, 0.2, 0.1); since 0.2 loses thelatestalias, its MkDocs outdated banner now shows, pointing to the root → latest.URLs kept
/docs/latest/,/latest/performance/,/latest/security/,/latest/roadmap/keep their paths (the landing and the ndarray README link to/docs/and/docs/latest/performance/). Everyh2–h6anchor of the live MkDocs pages exists in the new build (checked against the live site): where Hugo's slug differs from MkDocs' (—,/in headings),layouts/_markup/render-heading.htmladds the MkDocs anchor as a second id. Only the H1 ids (#performance-go-ndarray-vs-numpy…) go, since the title is now front matter.Mirrored pages
content/en/performance.md(from## How a pure-Go library can beat NumPydown = ndarraydocs/perf.md, verified byte-identical) andcontent/en/security.md(ndarraySECURITY.mdwith links rewritten) keep their mirrored text verbatim; only the H1 became front matter. The README's Mirrored pages section says where they live and how to re-sync them.Differences from go-fileshare, on purpose
dd14ca0and no licence file is mounted beside the marks (fileshare mounts its brand's LICENSE).overrides/main.html) is kept aslayouts/_partials/custom/content-begin.html(fileshare has none): shown whenversions.jsongiveslatestto another version.{#id}s instead; that would have edited the mirrored text).redeploy-version.ymlis removed: it rebuilt an old version with MkDocs from main'smkdocs.yml, which no longer exists. The MkDocs-built 0.1 and 0.2 stay as published.🤖 Generated with Claude Code