Commit 6c4d1e1454
6c4d1e14547d21b3675dbc339a5237826099e775
parent: e4ba4be971
Verified · cmc ci/build: success ci/test: success
cmc <hello@cleberg.net> · 2026-09-23 23:21 UTC
landing: drop the merge request picture and the help comment
The recording replaces the picture; its PNGs, the .shot img rule and the png entry go with it.
Ref #253
e2e/design_test.go
+2 −2
| @@ -189,8 +189,8 @@ func TestLandingRoutes(t *testing.T) { |
| 189 | 189 | `class="button primary" href="/explore">Explore repositories</a>`, |
| 190 | 190 | `class="button btn" href="/register">Create an account</a>`, |
| 191 | 191 | "web login</code>", |
| 192 | | "/static/img/mr-dark.png", |
| 193 | | "<picture>", |
| 192 | "/static/img/demo.webm", |
| 193 | "<video autoplay muted loop playsinline controls", |
| 194 | 194 | } { |
| 195 | 195 | if !strings.Contains(body, want) { |
| 196 | 196 | t.Errorf("landing lacks %q", want) |
internal/httpd/web.go
+2 −3
| @@ -118,14 +118,13 @@ func (s *Server) font(w http.ResponseWriter, r *http.Request) { |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | 120 | var staticTypes = map[string]string{ |
| 121 | | ".png": "image/png", |
| 122 | 121 | ".gif": "image/gif", |
| 123 | 122 | ".webm": "video/webm", |
| 124 | 123 | ".mp4": "video/mp4", |
| 125 | 124 | } |
| 126 | 125 | |
| 127 | | // image serves the embedded landing pictures and recording with the font |
| 128 | | // cache policy. ServeContent answers Range, which Safari needs to play video. |
| 126 | // image serves the embedded landing recording with the font cache policy. |
| 127 | // ServeContent answers Range, which Safari needs to play video. |
| 129 | 128 | func (s *Server) image(w http.ResponseWriter, r *http.Request) { |
| 130 | 129 | name := "static" + r.URL.Path[len("/static"):] |
| 131 | 130 | data, err := web.ImageFS.ReadFile(name) |
internal/web/static/img/mr-dark.png
deleted
Binary file not shown.
internal/web/static/img/mr-light.png
deleted
Binary file not shown.
internal/web/static/style.css
−1
| @@ -1703,7 +1703,6 @@ details.refmenu .refdrop a.allrefs { |
| 1703 | 1703 | .lede { font-size: var(--fs-4); color: var(--muted); line-height: 1.5; max-width: 40rem; margin: 0 0 var(--sp-5); } |
| 1704 | 1704 | pre.quickstart { margin: 0 0 var(--sp-4); } |
| 1705 | 1705 | .shot { border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; margin: var(--sp-5) 0; } |
| 1706 | | .shot img { display: block; width: 100%; height: auto; max-height: 420px; object-fit: cover; object-position: top; } |
| 1707 | 1706 | .shot video { display: block; width: 100%; height: auto; } |
| 1708 | 1707 | .shot figcaption { |
| 1709 | 1708 | border-top: 1px solid var(--line); |
internal/web/templates/landing.html
+1 −7
| @@ -4,7 +4,7 @@ |
| 4 | 4 | <div class="landing"> |
| 5 | 5 | <h1>{{template "mark"}}{{.Site}}</h1> |
| 6 | 6 | <p class="lede">A git forge you drive from the terminal. Repositories, issues, merge requests and CI over SSH, with a fast, readable web view of the same state.</p> |
| 7 | | <pre class="quickstart" tabindex="0">ssh git@{{.Host}} help # every command, no client to install |
| 7 | <pre class="quickstart" tabindex="0">ssh git@{{.Host}} help |
| 8 | 8 | git clone ssh://git@{{.Host}}/owner/repo.git</pre> |
| 9 | 9 | <div class="routes"><a class="button primary" href="/explore">Explore repositories</a>{{if .Signup}}<a class="button btn" href="/register">Create an account</a>{{end}}</div> |
| 10 | 10 | <figure class="shot"><video autoplay muted loop playsinline controls width="1248" height="688" aria-describedby="demo-caption"> |
| @@ -13,12 +13,6 @@ git clone ssh://git@{{.Host}}/owner/repo.git</pre> |
| 13 | 13 | </video> |
| 14 | 14 | <figcaption id="demo-caption">Signup to release on gitbay.org from a terminal: register an SSH key, verify the mailed code, create a repository and push, file an issue, open and merge a request that closes it, then tag and publish a release.</figcaption> |
| 15 | 15 | </figure> |
| 16 | | <figure class="shot"><picture> |
| 17 | | <source srcset="/static/img/mr-dark.png" media="(prefers-color-scheme: dark)"> |
| 18 | | <img src="/static/img/mr-light.png" width="1280" height="900" alt="A merged merge request: the description on the left, and on the right two CI checks reporting success with how long each ran, an approval, and the source and target branches."> |
| 19 | | </picture> |
| 20 | | <figcaption>A merged merge request on this instance. The description is on the left; the column beside it carries the CI checks, the approval that let it merge, and the branches it went between.</figcaption> |
| 21 | | </figure> |
| 22 | 16 | <div class="facets"> |
| 23 | 17 | <section><h2>Read</h2><p>Browse and clone any public repository over HTTPS or <code>git://</code>, no account. Every commit shows whether its signature verified.</p></section> |
| 24 | 18 | <section><h2>Write</h2><p>Push over SSH with the key you already have. Create a repository, file an issue, open and merge a request, all as commands.</p></section> |
internal/web/web.go
+1 −1
| @@ -29,7 +29,7 @@ var FaviconSVG []byte |
| 29 | 29 | //go:embed static/fonts/*.woff2 |
| 30 | 30 | var FontFS embed.FS |
| 31 | 31 | |
| 32 | | //go:embed static/img/*.png static/img/*.gif static/img/*.webm static/img/*.mp4 |
| 32 | //go:embed static/img/*.gif static/img/*.webm static/img/*.mp4 |
| 33 | 33 | var ImageFS embed.FS |
| 34 | 34 | |
| 35 | 35 | // version returns the short VCS revision baked into the binary, or "" when |