implement dynamic theming

This commit is contained in:
csehviktor
2025-08-01 20:50:13 +02:00
parent b8efad7398
commit 914f4b8a74
2 changed files with 7 additions and 9 deletions

View File

@@ -5,7 +5,6 @@ import (
"net/http"
"strings"
"github.com/a-h/templ"
"github.com/csehviktor/pastebin/store"
"github.com/csehviktor/pastebin/view"
)
@@ -60,7 +59,12 @@ func (h *HttpHandler) HandleGet(w http.ResponseWriter, r *http.Request) {
return
}
highlighted, err := highlight(content, ext, "catppuccin-macchiato")
theme := r.PathValue("theme")
if theme == "" {
theme = "catppuccin-macchiato"
}
highlighted, err := highlight(content, ext, theme)
if err != nil {
internal("could not highlight content", err, w, r)
return
@@ -72,10 +76,3 @@ func (h *HttpHandler) HandleGet(w http.ResponseWriter, r *http.Request) {
func (h *HttpHandler) HandleHome(w http.ResponseWriter, r *http.Request) {
render(view.BinEditorPage(), w, r)
}
func render(component templ.Component, w http.ResponseWriter, r *http.Request) {
err := component.Render(r.Context(), w)
if err != nil {
internal("could not render template", err, w, r)
}
}

View File

@@ -21,6 +21,7 @@ func main() {
mux.HandleFunc("GET /", httpHandler.HandleHome)
mux.HandleFunc("POST /", httpHandler.HandleSet)
mux.HandleFunc("GET /{id}", httpHandler.HandleGet)
mux.HandleFunc("GET /{id}/{theme}", httpHandler.HandleGet)
slog.Info("starting http server on", "addr", addr)
err := http.ListenAndServe(addr, mux)