Documentation site for Wire, built with Hugo and the Hextra theme.
Requires Hugo extended ≥ 0.158 and Go (Hugo Modules uses the Go toolchain to fetch the theme).
hugo server --disableFastRenderOpen http://localhost:1313/. The theme module is downloaded on first run.
hugo.yaml Site configuration (theme, menus, search, mermaid)
go.mod / go.sum Hugo Modules dependencies, pinning the Hextra version
content/ Documentation sources
_index.md Landing page
docs/ Documentation pages; each subdirectory is a section
assets/js/ Self-hosted mermaid / flexsearch (no CDN, offline builds)
static/images/ logo.svg (light) and logo-dark.svg (dark)
public/ Build output (git-ignored), uploaded by the deploy workflow
.github/workflows/hugo.yaml builds and deploys the site on every push to
master (pull requests only build it, to catch breakage before a merge). It
runs Hugo extended with Go for Hugo Modules — no Node.js toolchain is needed,
since Hextra ships precompiled CSS.
In the repository settings, Pages must be set to Source: GitHub Actions.
The workflow then derives the baseURL from the Pages configuration, so the
baseURL in hugo.yaml is only used for local builds.
To check the production build locally:
hugo --gc --minify # writes to public/The pages under content/docs/ are adapted from
wireinject/wire's _tutorial/README.md and
docs/*.md, with the package path changed from github.com/google/wire to
github.com/wireinject/wire. When the upstream docs change, update the matching
page here.