feat: translation middleware

This commit is contained in:
2026-02-19 21:13:01 +01:00
parent bbae5b1c93
commit cbc2a1a803
35 changed files with 1500 additions and 82 deletions
@@ -0,0 +1,24 @@
package handlehome
import (
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/layouts"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
)
func (h *Handler) home(w http.ResponseWriter, r *http.Request) {
pageHeaders, err := h.src.GetPages()
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
layouts.Render(r.Context(), w, r, pages.Home(pageHeaders))
}
func (h *Handler) page(w http.ResponseWriter, r *http.Request) {
uid := r.PathValue("uid")
layouts.Render(r.Context(), w, r, pages.ContentPage(page.Page{Title: uid}))
}
-12
View File
@@ -1,12 +0,0 @@
package handler
import (
"net/http"
"github.com/a-h/templ"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
)
func Home() http.Handler {
return templ.Handler(pages.Index())
}
+25
View File
@@ -0,0 +1,25 @@
package handlehome
import (
"net/http"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/page"
)
type Handler struct {
src pageService
}
func New(mux *http.ServeMux, srv pageService) *Handler {
h := &Handler{
src: srv,
}
mux.HandleFunc("GET /{$}", h.home)
mux.HandleFunc("GET /{uid}", h.page)
return h
}
type pageService interface {
GetPages() ([]page.Page, error)
}
-12
View File
@@ -1,12 +0,0 @@
package handler
import (
"net/http"
"github.com/a-h/templ"
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/web/pages"
)
func Home() http.Handler {
return templ.Handler(pages.Index())
}