feat: blog post titles

This commit is contained in:
Guz
2025-04-05 12:11:57 -03:00
parent 8d9771097d
commit 3f4e9661d0
2 changed files with 13 additions and 1 deletions

12
app.go
View File

@@ -8,6 +8,7 @@ import (
"io/fs"
"log/slog"
"net/http"
"regexp"
"slices"
"sort"
"strings"
@@ -219,13 +220,24 @@ func (r *blogPostRenderer) Name() string {
return "capytal-blogpostrenderer-renderer"
}
var re = regexp.MustCompile(`<h1>(.*?)</h1>`)
func (r *blogPostRenderer) Render(src fs.File, w io.Writer) error {
c, err := io.ReadAll(src)
if err != nil {
return err
}
m := re.FindStringSubmatch(string(c))
title := "Blog"
if len(m) > 1 {
t := strings.TrimSuffix(strings.TrimPrefix(m[0], "<h1>"), "</h1>")
title = fmt.Sprintf("%s - Capytal's Blog", t)
}
return r.templates.ExecuteTemplate(w, "blog-post", map[string]any{
"Title": title,
"Lang": r.lang,
"Content": template.HTML(string(c)),
})

View File

@@ -1,5 +1,5 @@
{{define "blog-post"}}
{{template "layout-page-start" (args "Title" "Capytal")}}
{{template "layout-page-start" (args "Title" .Title)}}
<div class="h-full w-full pt-[30vh]">
{{template "nav-bar" (args "Lang" .Lang)}}
<main class="mx-10 text-justify md:mx-auto md:w-[80%]" id="blog-post">