aboutsummaryrefslogtreecommitdiff
path: root/pkg/handler/static/handler.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/handler/static/handler.go')
-rw-r--r--pkg/handler/static/handler.go22
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