Vendored web assets
static/ is embedded in the binary and served under /-/static/ with
content-hashed names. Nothing is fetched at runtime.
| File | What | Source | SHA-256 |
|---|---|---|---|
static/js/htmx.min.js |
htmx 4.0.0 (BSD Zero Clause, static/js/htmx-LICENSE) |
mockups/assets/htmx/htmx.min.js of the design |
e484d9171a9db30a39c8f16e3d709d4137f3211c659f8e6125816635033d593f |
static/js/hx-live.min.js |
htmx 4 hx-live extension |
mockups/assets/htmx/ext/hx-live.min.js |
adf9b90949d57baf20dc2eaf1d1fd46c81347ac82c090a5e2912ce6b37726734 |
static/js/hx-sse.min.js |
htmx 4 hx-sse extension |
mockups/assets/htmx/ext/hx-sse.min.js |
8a834680c4000a9034d79228872372a92e140c810a075cb6d4a76690dfc13085 |
static/js/ermite.js |
key sequences to k-* events, the functions the keys and inputs call (window.ermite), the live fragments (ermiteLive), the diff table of contents observer |
mockups/d/js/ermite.js, extended here |
|
static/js/log.js |
the live log of a running job (window.ermiteLog, tested in Node by jstest/log.test.mjs) |
written here | |
static/js/files.js |
the Files view: directories open in place (window.ermiteTree), the fuzzy file finder and the palette's file hits (window.ermiteFinder; its core is tested in Node by jstest/files.test.mjs) |
written here | |
static/js/passkey.js |
passkey sign-in on /-/login and passkey registration on /-/passkeys: a delegated click handler on [data-passkey] that runs the WebAuthn JSON API flow (window.ermitePasskey; tested in Node by jstest/passkey.test.mjs) |
written here | |
static/css/56-chroma.css |
syntax classes of the code view, mapped to the --syn-* tokens (no colour of its own) |
generated by go run scripts/chroma-css.go from chroma's token classes |
|
static/css/*.css |
native CSS, served as one stylesheet in name order; relative url(fonts/…) and url(icons/…) become hashed URLs |
written here | |
static/fonts/atkinson-next.woff2, atkinson-next-italic.woff2 |
Atkinson Hyperlegible Next, variable weight, latin subset (SIL OFL 1.1, static/fonts/OFL-next.txt) |
Google Fonts | 18b2a1a39a2fa298b0ba5390aca68462669826c90925656f1c1f6796e0e1bbaf, 4a5037bfaf6680f40147407407ec09fa42925774bde809a579283d27f9f08106 |
static/fonts/atkinson-mono.woff2 |
Atkinson Hyperlegible Mono, variable weight, latin subset (SIL OFL 1.1, static/fonts/OFL-mono.txt) |
Google Fonts | 2706b1ee4f452e744ea91f7e4908cbde9c5d35521bf5ffffc71a382a2de89613 |
static/icons/*.svg |
interface icons, used as CSS masks; brand.svg is a grey picture shown as is. Only the icons in use are copied, one file each: branch, search, tag, file, user, key, log-in, log-out are Lucide 1.8 (git-branch, search, tag, file-text, user-round, key-round, log-in, log-out; ISC, https://lucide.dev/license) |
Lucide; brand.svg written here |
|
static/app/*.png |
icons of the installed web app (manifest, apple-touch-icon), rendered from brand.svg with resvg; the maskable and Apple icons have the picture in the safe zone on #181818 |
generated here | |
static/rules.json |
speculation rules: prefetch the light same-origin pages on hover (Speculation-Rules header); the heavy ones (tree, blob, commit, commits, compare, refs, raw, MR "since") are excluded, each costs several Git reads on the server |
written here |
The three htmx files are the exact files the approved mockup was built with.
To upgrade, replace the file, update the checksum here, and run the web tests
(go test ./internal/app -run TestWeb).
*_templ.go files are generated by go tool templ generate (templ is pinned
in go.mod) and committed; scripts/templ-drift.sh fails when they are stale.