all repos — homestead @ 1d3951219bb1a254c618b1d4a6a5e492981c7926

Code for my website

pass rendered html to homepage

Alan Pearce
commit

1d3951219bb1a254c618b1d4a6a5e492981c7926

parent

7857dae1f6acb57eb60bac9c03744d15d3d2bde4

3 files changed, 13 insertions(+), 18 deletions(-)

jump to
M internal/builder/builder.gointernal/builder/builder.go
@@ -206,7 +206,15 @@ }
r.Hashes = append(r.Hashes, h) log.Debug("rendering homepage") - if err := renderToFile(homepage(config, posts), publicDir, "index.html"); err != nil { + _, text, err := content.GetPost(path.Join("content", "_index.md")) + if err != nil { + return nil, err + } + content, err := content.RenderMarkdown(text) + if err != nil { + return nil, err + } + if err := renderToFile(homepage(config, posts, content), publicDir, "index.html"); err != nil { return nil, err } // it would be nice to set LastMod here, but using the latest post
M internal/builder/homepage.templinternal/builder/homepage.templ
@@ -2,23 +2,10 @@ package builder
import ( "website/internal/config" - "path" "website/internal/content" ) -func getContent(filename string) templ.Component { - return templ.ComponentFunc(func(ctx context.Context, w io.Writer) error { - _, index, err := content.GetPost(path.Join("content", filename)) - if err != nil { - return err - } - _, err = io.WriteString(w, string(index)) - - return err - }) -} - -templ homepage(config config.Config, posts []content.Post) { +templ homepage(config config.Config, posts []content.Post, content string) { @page(config, PageSettings{ Title: config.Title, TitleAttrs: templ.Attributes{
@@ -30,7 +17,7 @@ "class": "h-card",
}, }) { <div id="content"> - @getContent("_index.md") + @Unsafe(content) </div> <section> <h2>Latest Posts</h2>
M internal/content/posts.gointernal/content/posts.go
@@ -70,7 +70,7 @@
return &matter, rest, nil } -func renderMarkdown(content []byte) (string, error) { +func RenderMarkdown(content []byte) (string, error) { var buf bytes.Buffer if err := markdown.Convert(content, &buf); err != nil { return "", errors.WithMessage(err, "could not convert markdown content")
@@ -105,7 +105,7 @@ tags.Add(strings.ToLower(tag))
} log.Debug("rendering markdown in post", "post", pathFromRoot) - html, err := renderMarkdown(content) + html, err := RenderMarkdown(content) if err != nil { return nil, nil, err }