diff options
author | Alan Pearce | 2024-06-18 20:19:05 +0200 |
---|---|---|
committer | Alan Pearce | 2024-06-18 20:19:05 +0200 |
commit | 1f9f24e2cef08f40fe2597b3644d08b28e31d370 (patch) | |
tree | b5157b49e8777335b54738ceada783450e8570e4 /internal | |
parent | b27c96688785372787eb5c3c71a32767fab71ac4 (diff) | |
download | website-1f9f24e2cef08f40fe2597b3644d08b28e31d370.tar.lz website-1f9f24e2cef08f40fe2597b3644d08b28e31d370.tar.zst website-1f9f24e2cef08f40fe2597b3644d08b28e31d370.zip |
pass rendered html to homepage
Diffstat (limited to 'internal')
-rw-r--r-- | internal/builder/builder.go | 10 | ||||
-rw-r--r-- | internal/builder/homepage.templ | 17 | ||||
-rw-r--r-- | internal/content/posts.go | 4 |
3 files changed, 13 insertions, 18 deletions
diff --git a/internal/builder/builder.go b/internal/builder/builder.go index 141bd6f..b4ade4a 100644 --- a/internal/builder/builder.go +++ b/internal/builder/builder.go @@ -206,7 +206,15 @@ func build(outDir string, config config.Config) (*Result, error) { 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 diff --git a/internal/builder/homepage.templ b/internal/builder/homepage.templ index 1df401b..df5bc32 100644 --- a/internal/builder/homepage.templ +++ b/internal/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 @@ templ homepage(config config.Config, posts []content.Post) { }, }) { <div id="content"> - @getContent("_index.md") + @Unsafe(content) </div> <section> <h2>Latest Posts</h2> diff --git a/internal/content/posts.go b/internal/content/posts.go index c3511cf..5185d06 100644 --- a/internal/content/posts.go +++ b/internal/content/posts.go @@ -70,7 +70,7 @@ func GetPost(filename string) (*PostMatter, []byte, error) { 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 @@ func ReadPosts(root string, inputDir string, outputDir string) ([]Post, Tags, er } log.Debug("rendering markdown in post", "post", pathFromRoot) - html, err := renderMarkdown(content) + html, err := RenderMarkdown(content) if err != nil { return nil, nil, err } |