diff --git a/handlers/pages/blog.go b/handlers/pages/blog.templ similarity index 68% rename from handlers/pages/blog.go rename to handlers/pages/blog.templ index 93ea983..693b851 100644 --- a/handlers/pages/blog.go +++ b/handlers/pages/blog.templ @@ -4,13 +4,13 @@ import ( "encoding/json" "errors" "fmt" - "io" "net/http" "net/url" "path" - "forge.capytal.company/capytalcode/project-comicverse/lib/router" - "forge.capytal.company/capytalcode/project-comicverse/lib/router/rerrors" + "forge.capytal.company/capytal/www/templates/layouts" + + "forge.capytal.company/loreddev/x/groute/router/rerrors" ) type Blog struct { @@ -27,10 +27,17 @@ func NewBlog(owner, repo, endpoint string) *Blog { return &Blog{repo: repo, owner: owner, endpoint: u.String()} } -func (p *Blog) Routes() router.Router { - r := router.NewRouter() +func (p *Blog) Routes() http.Handler { + r := http.NewServeMux() - r.HandleFunc("/", p.listPosts) + r.HandleFunc("/{entry...}", func(w http.ResponseWriter, r *http.Request) { + pv := r.PathValue("entry") + if pv == "" { + p.listPosts(w, r) + } else { + p.blogEntry(w, r) + } + }) return r } @@ -50,13 +57,32 @@ func (p *Blog) listPosts(w http.ResponseWriter, r *http.Request) { return } - w.WriteHeader(http.StatusOK) - _, err = w.Write([]byte(fmt.Sprintf("%v", list))) + err = p.blogEntryList(list).Render(r.Context(), w) if err != nil { rerrors.InternalError(err).ServeHTTP(w, r) } } +templ (p *Blog) blogEntryList(entries []forgejoFile) { + @layouts.Page() { +