diff --git a/cmd/owl-web/handler.go b/cmd/owl-web/handler.go index 4c95b67..482cf69 100644 --- a/cmd/owl-web/handler.go +++ b/cmd/owl-web/handler.go @@ -102,7 +102,7 @@ func postHandler(repo *owl.Repository) func(http.ResponseWriter, *http.Request, return } - html, err := owl.RenderPost(post) + html, err := owl.RenderPost(&post) if err != nil { println("Error rendering post: ", err.Error()) w.WriteHeader(http.StatusInternalServerError) diff --git a/embed/post-list.html b/embed/post-list.html index 46d5a16..054b7db 100644 --- a/embed/post-list.html +++ b/embed/post-list.html @@ -1,10 +1,16 @@
{{range .}}
-

{{.Title}}

-
Published: {{.Meta.Date}}
+
+

{{.Title}}

+ + Published: + + +

-
{{end}}
\ No newline at end of file diff --git a/embed/post.html b/embed/post.html index d6c1ffb..e4e545b 100644 --- a/embed/post.html +++ b/embed/post.html @@ -1,6 +1,16 @@
-

{{.Title}}

+
+

{{.Title}}

+ + Published: + + +
+
+
- {{.Post}} + {{.Content}}
\ No newline at end of file diff --git a/renderer.go b/renderer.go index f4ac784..74034a6 100644 --- a/renderer.go +++ b/renderer.go @@ -12,8 +12,9 @@ type PageContent struct { } type PostRenderData struct { - Title string - Post template.HTML + Title string + Post *Post + Content template.HTML } func renderEmbedTemplate(templateFile string, data interface{}) (string, error) { @@ -67,11 +68,12 @@ func renderIntoBaseTemplate(user User, data PageContent) (string, error) { return html.String(), nil } -func RenderPost(post Post) (string, error) { +func RenderPost(post *Post) (string, error) { buf := post.RenderedContent() postHtml, err := renderEmbedTemplate("embed/post.html", PostRenderData{ - Title: post.Title(), - Post: template.HTML(buf.String()), + Title: post.Title(), + Post: post, + Content: template.HTML(buf.String()), }) if err != nil { return "", err diff --git a/renderer_test.go b/renderer_test.go index d97f8e2..bbd5358 100644 --- a/renderer_test.go +++ b/renderer_test.go @@ -11,7 +11,7 @@ import ( func TestCanRenderPost(t *testing.T) { user := getTestUser() post, _ := user.CreateNewPost("testpost") - result, err := owl.RenderPost(post) + result, err := owl.RenderPost(&post) if err != nil { t.Error("Error rendering post: " + err.Error()) @@ -27,7 +27,7 @@ func TestCanRenderPost(t *testing.T) { func TestRenderPostHEntry(t *testing.T) { user := getTestUser() post, _ := user.CreateNewPost("testpost") - result, _ := owl.RenderPost(post) + result, _ := owl.RenderPost(&post) if !strings.Contains(result, "class=\"h-entry\"") { t.Error("h-entry container not rendered. Got: " + result) } @@ -43,7 +43,7 @@ func TestRenderPostHEntry(t *testing.T) { func TestRendererUsesBaseTemplate(t *testing.T) { user := getTestUser() post, _ := user.CreateNewPost("testpost") - result, err := owl.RenderPost(post) + result, err := owl.RenderPost(&post) if err != nil { t.Error("Error rendering post: " + err.Error()) @@ -132,7 +132,7 @@ func TestRendersHeaderTitle(t *testing.T) { }) post, _ := user.CreateNewPost("testpost") - result, _ := owl.RenderPost(post) + result, _ := owl.RenderPost(&post) if !strings.Contains(result, "Test Title") { t.Error("Header title not rendered. Got: " + result) }