From 002abd7ed149c74282678fcab8110c7229442aa5 Mon Sep 17 00:00:00 2001 From: "Gustavo L de Mello (Guz)" Date: Fri, 3 Jan 2025 15:37:47 -0300 Subject: [PATCH] feat(blog): entry list template --- handlers/pages/blog.templ | 41 +++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/handlers/pages/blog.templ b/handlers/pages/blog.templ index 0e91538..f9e5cf1 100644 --- a/handlers/pages/blog.templ +++ b/handlers/pages/blog.templ @@ -21,15 +21,17 @@ import ( "github.com/yuin/goldmark-meta" ) -type EntryTemplate func(html []byte) templ.Component +type EntryTemplate func([]byte) templ.Component +type EntryListTemplate func(map[string]entry) templ.Component type Blog struct { repo string owner string endpoint string - md goldmark.Markdown - entryTemplate EntryTemplate + md goldmark.Markdown + entryTemplate EntryTemplate + entryListTemplate EntryListTemplate entries map[string]entry } @@ -69,7 +71,8 @@ func NewBlog(owner, repo, endpoint string, opts ...BlogOptions) (*Blog, error) { endpoint: u.String(), md: md, // entryTemplate: opt.EntryTemplate, - entryTemplate: template, + entryTemplate: template, + entryListTemplate: templateList, entries: map[string]entry{}, } @@ -161,22 +164,12 @@ func (p *Blog) init() error { } func (p *Blog) listPosts(w http.ResponseWriter, r *http.Request) { - err := p.blogEntryList(p.entries).Render(r.Context(), w) + err := p.entryListTemplate(p.entries).Render(r.Context(), w) if err != nil { rerrors.InternalError(err).ServeHTTP(w, r) } } -templ (p *Blog) blogEntryList(entries map[string]entry) { - @layouts.Page() { - - } -} - func (p *Blog) blogEntry(w http.ResponseWriter, r *http.Request) { e, ok := p.entries[r.PathValue("entry")] if !ok { @@ -238,3 +231,21 @@ templ template(html []byte) { } } + +templ templateList(entries map[string]entry) { + @layouts.Page() { +
+
+

Blog

+
    + for _, e := range entries { +
  • +

    { e.title }

    +

    { e.summary }

    +
  • + } +
+
+
+ } +}