From 9cc207cb66ac5e6cc07eb220e7860a12596a2347 Mon Sep 17 00:00:00 2001 From: trafficlunar Date: Sun, 14 Dec 2025 13:46:18 +0000 Subject: [PATCH] feat: random changes - gzip all requests - fix jetbrains mono font - last updated text - show 'now' instead of '0m ago' - overflow styling issues --- go.mod | 1 + go.sum | 2 ++ src/http.go | 27 +++++++++--------- .../jetbrains-mono-v24-latin-regular.ttf | Bin 0 -> 57404 bytes .../jetbrains-mono-v24-latin-regular.woff2 | Bin 0 -> 21168 bytes www/index.html | 15 +++++++--- www/styles.css | 9 ++++++ 7 files changed, 37 insertions(+), 17 deletions(-) create mode 100644 www/fonts/jetbrains-mono-v24-latin-regular.ttf create mode 100644 www/fonts/jetbrains-mono-v24-latin-regular.woff2 diff --git a/go.mod b/go.mod index c9afc23..251bd2a 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module status-page go 1.25.4 require ( + github.com/klauspost/compress v1.18.2 github.com/pelletier/go-toml/v2 v2.2.4 modernc.org/sqlite v1.40.1 ) diff --git a/go.sum b/go.sum index 8ed8d26..d798820 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17k github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/klauspost/compress v1.18.2 h1:iiPHWW0YrcFgpBYhsA6D1+fqHssJscY/Tm/y2Uqnapk= +github.com/klauspost/compress v1.18.2/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= diff --git a/src/http.go b/src/http.go index 5e30ca9..31b4d8d 100644 --- a/src/http.go +++ b/src/http.go @@ -1,12 +1,13 @@ package main import ( - "compress/gzip" "html/template" "log" "net/http" "strings" "time" + + "github.com/klauspost/compress/gzhttp" ) type Incident struct { @@ -92,12 +93,7 @@ func index(w http.ResponseWriter, req *http.Request) { return } - // encode response in gzip - w.Header().Set("Content-Encoding", "gzip") - gw := gzip.NewWriter(w) - defer gw.Close() - - if err := tmpl.ExecuteTemplate(gw, "index.html", data); err != nil { + if err := tmpl.ExecuteTemplate(w, "index.html", data); err != nil { log.Printf("template execute error: %v", err) renderError(w, http.StatusInternalServerError, "Internal server error") return @@ -135,12 +131,17 @@ func StartHttpServer() { } // http server - http.HandleFunc("/", index) - http.HandleFunc("/styles.css", styles) - http.HandleFunc("/favicon.ico", favicon) - http.HandleFunc("/robots.txt", robots) - http.Handle("/fonts/", http.StripPrefix("/fonts/", http.FileServer(http.Dir("www/fonts/")))) - if err := http.ListenAndServe(":8888", nil); err != nil { + mux := http.NewServeMux() + mux.HandleFunc("/", index) + mux.HandleFunc("/styles.css", styles) + mux.HandleFunc("/favicon.ico", favicon) + mux.HandleFunc("/robots.txt", robots) + mux.Handle("/fonts/", http.StripPrefix("/fonts/", http.FileServer(http.Dir("www/fonts/")))) + + // wrap with gzip middleware + handler := gzhttp.GzipHandler(mux) + + if err := http.ListenAndServe(":8888", handler); err != nil { log.Fatalf("server failed: %v", err) } } diff --git a/www/fonts/jetbrains-mono-v24-latin-regular.ttf b/www/fonts/jetbrains-mono-v24-latin-regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..782d62044b89a4c85489948200b30b8edc00e3e1 GIT binary patch literal 57404 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 literal 0 HcmV?d00001 diff --git a/www/fonts/jetbrains-mono-v24-latin-regular.woff2 b/www/fonts/jetbrains-mono-v24-latin-regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..585887339efd032b6b715466ae72d86e306bec79 GIT binary patch literal 21168 zcmV)FK)=6tPew8T0RR9108+335C8xG0O80008&f<0RR9100000000000000000000 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 T=ND-DucNQ`tADQ-AuI&|D5jKI literal 0 HcmV?d00001 diff --git a/www/index.html b/www/index.html index 2d8317d..3d4b830 100644 --- a/www/index.html +++ b/www/index.html @@ -16,6 +16,7 @@ display: flex; flex-direction: column; width: 100%; + height: max-content; max-width: 40rem; padding: 4rem 2rem 1.5rem; background-color: white; @@ -102,6 +103,7 @@ display: flex; flex-direction: column; gap: 2.5rem; + margin-bottom: 4rem; } .info { @@ -560,10 +562,15 @@ const hours = Math.floor(seconds / 3600); const days = Math.floor(seconds / 86400); - if (days >= 1) lastUpdatedText.textContent = `Last updated: ${days}d ago`; - if (hours >= 1) lastUpdatedText.textContent = `Last updated: ${hours}h ago`; - - lastUpdatedText.textContent = `Last updated: ${minutes}m ago`; + if (days >= 1) { + lastUpdatedText.textContent = `Last updated: ${days}d ago`; + } else if (hours >= 1) { + lastUpdatedText.textContent = `Last updated: ${hours}h ago`; + } else if (minutes >= 1) { + lastUpdatedText.textContent = `Last updated: ${minutes}m ago`; + } else { + lastUpdatedText.textContent = `Last updated: now`; + } } update(); diff --git a/www/styles.css b/www/styles.css index 9a04bd5..e52e962 100644 --- a/www/styles.css +++ b/www/styles.css @@ -43,6 +43,15 @@ src: url("/fonts/inter-v20-latin-800.woff2") format("woff2"), url("/fonts/inter-v20-latin-800.ttf") format("truetype"); } +/* jetbrains-mono-regular */ +@font-face { + font-display: swap; + font-family: "JetBrains Mono"; + font-style: normal; + font-weight: 400; + src: url("/fonts/jetbrains-mono-v24-latin-regular.woff2") format("woff2"), url("/fonts/jetbrains-mono-v24-latin-regular.ttf") format("truetype"); +} + /* jetbrains-mono-600 */ @font-face { font-display: swap;