diff options
| author | Gabriel A. Giovanini <mail@gabrielgio.me> | 2025-11-01 18:01:50 +0100 |
|---|---|---|
| committer | Gabriel A. Giovanini <mail@gabrielgio.me> | 2025-11-01 18:03:45 +0100 |
| commit | 49fc8733129028ff4a3537b9eb20f548f0e3e9e6 (patch) | |
| tree | 71b579b2914ce97b38d52c29795c3e3ba6518329 /pkg/handler/static/handler.go | |
| parent | 5dd940eb52b40c78a2078ed0a02440e84bee0306 (diff) | |
| download | cerrado-49fc8733129028ff4a3537b9eb20f548f0e3e9e6.tar.gz cerrado-49fc8733129028ff4a3537b9eb20f548f0e3e9e6.tar.bz2 cerrado-49fc8733129028ff4a3537b9eb20f548f0e3e9e6.zip | |
feat: Add slug to css so we can cache it forever
Diffstat (limited to 'pkg/handler/static/handler.go')
| -rw-r--r-- | pkg/handler/static/handler.go | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/pkg/handler/static/handler.go b/pkg/handler/static/handler.go index 779c786..6cc884e 100644 --- a/pkg/handler/static/handler.go +++ b/pkg/handler/static/handler.go @@ -1,6 +1,7 @@ package static import ( + "bytes" "fmt" "io" "io/fs" @@ -45,23 +46,32 @@ func ServeStaticCSSHandler(lightTheme, darkTheme string) (ext.ErrorRequestHandle return func(w http.ResponseWriter, r *ext.Request) error { ext.SetMIME(w, "text/css") + w.Header().Add("Cache-Control", "max-age=31536000") + + // use buffer so this function can fail before writing to http.ResponseWriter + var buffer bytes.Buffer var style *chroma.Style style = darkStyle - w.Write([]byte("[data-bs-theme=\"dark\"] {\n")) - err := formatter.WriteCSS(&ws{w}, style) + buffer.Write([]byte("[data-bs-theme=\"dark\"] {\n")) + err := formatter.WriteCSS(&ws{&buffer}, style) if err != nil { return err } - w.Write([]byte("}\n")) + buffer.Write([]byte("}\n")) style = lightStyle - w.Write([]byte("[data-bs-theme=\"light\"] {\n")) - err = formatter.WriteCSS(&ws{w}, style) + buffer.Write([]byte("[data-bs-theme=\"light\"] {\n")) + err = formatter.WriteCSS(&ws{&buffer}, style) + if err != nil { + return err + } + buffer.Write([]byte("}")) + + _, err = io.Copy(w, &buffer) if err != nil { return err } - w.Write([]byte("\n}")) return nil }, nil |
