Home

blog @main - refs - log -
-
https://git.jolheiser.com/blog.git
My nonexistent blog
tree log patch
feat: atom feed and more on index Signed-off-by: jolheiser <john.olheiser@gmail.com>
Signature
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEgqEQpE3xoo1QwJO/uFOtpdp7v3oFAmXcB+AACgkQuFOtpdp7 v3r0lg//TVL4EkYPs9pHqKzpdvp4TWbA1ug/0ZTbksJ96vGDVeXbIYTLEOdseDr5 9CBBR4lBabxLYaiVJfUmmpHDqCAqdP2SmL4QCq0wdqmvcjeO7izkIU6o5/prEMVd O2gqT25QrPWzd2TMmaTWG3+WsPn6BTBzOCD6pTESFWRWX4nIuCuthIklVnTDkecD lUlr0SW9J+8CvX6fD/qAUw0s4CWkfTzUxAeo4p5UKdjCK4sVqbSI61V/mIIq+Bxx l1gQ2k/4qt935bU1oTqcqqRQHDK4f+ozZrvvo2t6xELKJUngEUEEeVe2ZK1D1sVB BfjYYe0lS4Qrxht0KKxkiLSCf+QLpkarSJbaiXflysMA0tcgIG/LT3vTU9++4uqJ YaS75HWT5USw+DMd2p9T6qkfgSmet+W4Fw3SRCm1IsTKiskVl/yqCFoG4yP22U2+ 6sa6UGTpJcRIPKDDariZuB29/dHA1sgJiq5PIrvRMNNatlxmjuSWR6rMHldbT8ZC 0z2pNn6G/6dqFZuvUwIdLVNGcLv/Zw1VLb9AB+LIas5lZacHAP1zFsyXiF/aIK0Z E8fOqIjtmPjTUTZSkgxM4Kva+/dPoa5TQL9ic1Zbvx+J7Iy8mehp9FnTjY+F7UOG peH+zZjupFtNe/GKdDYMUBg0DPx6tsH8bltc/B3F2BRZggJYTr4= =nRw4 -----END PGP SIGNATURE-----
jolheiser <john.olheiser@gmail.com>
1 year ago
6 changed files, 96 additions(+), 28 deletions(-)
articles/introduction.mdgo.modgo.summain.gotemplates.templtemplates_templ.go
M articles/introduction.mdarticles/introduction.md
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
diff --git a/articles/introduction.md b/articles/introduction.md
index db25393f8e82bdae7a1dc9f7a779d36c9048a4d7..eb8540e3c1961a07939e4274b3c74a60f1a5d8d9 100644
--- a/articles/introduction.md
+++ b/articles/introduction.md
@@ -28,6 +28,9 @@ Things it can do:
 
 - [x] Render code :pencil:
 - [ ] Fill the void[^1] :black_circle:
+- [x] Generate an [~~RSS~~ Atom Feed](/feed.atom)
+
+> atom is like rss, but better (??), but not all feeds support it, but a lot do, but rss is more widely supported, but most people use atom, except for the people who use rss, which is probably more
 
 `blog` parses some articles (in markdown format), renders them, and pushes them to an output directory.
 
M go.modgo.mod
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/go.mod b/go.mod
index 3d226dae1f71f357af8b8c8cbd8f38889bcba113..3270f56fe5a500bc0270341295be4dbab205c200 100644
--- a/go.mod
+++ b/go.mod
@@ -6,6 +6,7 @@ require (
 	github.com/BurntSushi/toml v1.3.2
 	github.com/a-h/templ v0.2.543
 	github.com/alecthomas/chroma/v2 v2.12.0
+	github.com/gorilla/feeds v1.1.2
 	github.com/yuin/goldmark v1.7.0
 	github.com/yuin/goldmark-emoji v1.0.2
 	github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
@@ -14,7 +15,6 @@ )
 
 require (
 	github.com/dlclark/regexp2 v1.10.0 // indirect
-	github.com/kr/pretty v0.3.1 // indirect
 	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
 	gopkg.in/yaml.v2 v2.4.0 // indirect
 )
M go.sumgo.sum
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff --git a/go.sum b/go.sum
index c4b1bc6fb037c92e5fe68ac1efae39f51b36f823..b6480dd6af6a990164073d9407775bc0744bff4a 100644
--- a/go.sum
+++ b/go.sum
@@ -10,7 +10,6 @@ github.com/alecthomas/chroma/v2 v2.12.0/go.mod h1:4TQu7gdfuPjSh76j78ietmqh9LiurGF0EpseFXdKMBw=
 github.com/alecthomas/repr v0.0.0-20220113201626-b1b626ac65ae/go.mod h1:2kn6fqh/zIyPLmm3ugklbEi5hg5wS435eygvNfaDQL8=
 github.com/alecthomas/repr v0.2.0 h1:HAzS41CIzNW5syS8Mf9UwXhNH1J9aix/BvDRf1Ml2Yk=
 github.com/alecthomas/repr v0.2.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
-github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
@@ -19,13 +18,14 @@ github.com/dlclark/regexp2 v1.10.0 h1:+/GIL799phkJqYW+3YbOd8LCcbHzT0Pbo8zl70MHsq0=
 github.com/dlclark/regexp2 v1.10.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
 github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
 github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/gorilla/feeds v1.1.2 h1:pxzZ5PD3RJdhFH2FsJJ4x6PqMqbgFk1+Vez4XWBW8Iw=
+github.com/gorilla/feeds v1.1.2/go.mod h1:WMib8uJP3BbY+X8Szd1rA5Pzhdfh+HCCAYT2z7Fza6Y=
 github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
 github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
 github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
 github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
 github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
M main.gomain.go
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
diff --git a/main.go b/main.go
index 747475235f2d618a6f1748d5f4703db08779e4a3..30ad19e2132b20ea77ecc5ef7c77ac4ca4c87858 100644
--- a/main.go
+++ b/main.go
@@ -12,8 +12,10 @@ 	iofs "io/fs"
 	"net/http"
 	"os"
 	"path/filepath"
+	"time"
 
 	"github.com/alecthomas/chroma/v2/styles"
+	"github.com/gorilla/feeds"
 )
 
 var (
@@ -38,7 +40,8 @@ 	if err != nil {
 		return err
 	}
 
-	articles := make(Articles)
+	categories := make(Articles)
+	articles := make([]Article, 0, len(files))
 	for _, file := range files {
 		if filepath.Ext(file.Name()) != ".md" {
 			continue
@@ -51,7 +54,8 @@ 		article, err := Parse(string(content))
 		if err != nil {
 			return err
 		}
-		articles[article.Category] = append(articles[article.Category], article)
+		categories[article.Category] = append(categories[article.Category], article)
+		articles = append(articles, article)
 		if err := writeArticle(*outFlag, article); err != nil {
 			return err
 		}
@@ -62,6 +66,10 @@ 		return err
 	}
 
 	if err := copyStatic(*outFlag); err != nil {
+		return err
+	}
+
+	if err := writeRSS(*outFlag, articles); err != nil {
 		return err
 	}
 
@@ -71,7 +79,7 @@ 		return err
 	}
 	defer fi.Close()
 
-	if err := IndexTemplate(articles).Render(context.Background(), fi); err != nil {
+	if err := IndexTemplate(categories).Render(context.Background(), fi); err != nil {
 		return err
 	}
 
@@ -97,6 +105,40 @@ 	}
 	defer fi.Close()
 
 	return ArticleTemplate(article).Render(context.Background(), fi)
+}
+
+func writeRSS(out string, articles []Article) error {
+	fi, err := os.Create(filepath.Join(out, "feed.atom"))
+	if err != nil {
+		return err
+	}
+	defer fi.Close()
+
+	feed := &feeds.Feed{
+		Title:       "jolheiser",
+		Link:        &feeds.Link{Href: "https://blog.jolheiser.com"},
+		Description: "jolheiser's blog log in a blog bog",
+		Author: &feeds.Author{
+			Name:  "John Olheiser",
+			Email: "john@jolheiser.com",
+		},
+		Updated: time.Now(),
+		Created: time.Date(2024, time.February, 25, 0, 0, 0, 0, time.Local),
+		// Image:       &feeds.Image{},
+	}
+	for _, article := range articles {
+		url := fmt.Sprintf("https://blog.jolheiser.com/%s", article.Slug())
+		feed.Items = append(feed.Items, &feeds.Item{
+			Title:       article.Title,
+			Link:        &feeds.Link{Href: url},
+			Description: article.Summary,
+			Id:          url,
+			Created:     article.Date,
+			// Content:     article.Content,
+		})
+	}
+
+	return feed.WriteAtom(fi)
 }
 
 func writeCSS(out string) error {
M templates.templtemplates.templ
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
diff --git a/templates.templ b/templates.templ
index 68077b6bf65407a4afcf6f0564fdd67e1661d34b..173aac3f47e4500e84ada5cc6d3274e1a2cef611 100644
--- a/templates.templ
+++ b/templates.templ
@@ -9,6 +9,7 @@ 			<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
 			<title>{ title }</title>
 			<meta property="og:title" content={ title }/>
 			<meta property="og:description" content={ description }/>
+			<link rel="alternate" type="application/atom+xml" href="/feed.atom"/>
 			<link rel="stylesheet" href="/sakura.css"/>
 			<link rel="stylesheet" href="/chroma.css"/>
 			<link rel="stylesheet" href="/jolheiser.css"/>
@@ -21,9 +22,13 @@ }
 
 templ IndexTemplate(articles Articles) {
 	@baseTemplate("jolheiser's blog", "Hahaha yes.....YES!") {
+		<header>
+			<h1>jolheiser</h1>
+			<p>Just a guy living in the middle of nowhere who likes to hack on open-source.</p>
+		</header>
 		<main>
 			for category, articles := range articles {
-				<h2>{ category }</h2>
+				<h3>{ category }</h3>
 				<ul>
 					for _, article := range articles {
 						<li><a href={ templ.SafeURL(article.Slug()) }>{ article.Title }</a></li>
M templates_templ.gotemplates_templ.go
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
diff --git a/templates_templ.go b/templates_templ.go
index 4a486d19e9f7315420f196c5883d7f5e49458522..7d6b98107fbc6e667247845a3859e5ba9f6c82fc 100644
--- a/templates_templ.go
+++ b/templates_templ.go
@@ -48,7 +48,7 @@ 		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(description))
 		if templ_7745c5c3_Err != nil {
 			return templ_7745c5c3_Err
 		}
-		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><link rel=\"stylesheet\" href=\"/sakura.css\"><link rel=\"stylesheet\" href=\"/chroma.css\"><link rel=\"stylesheet\" href=\"/jolheiser.css\"></head><body>")
+		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\"><link rel=\"alternate\" type=\"application/atom+xml\" href=\"/feed.atom\"><link rel=\"stylesheet\" href=\"/sakura.css\"><link rel=\"stylesheet\" href=\"/chroma.css\"><link rel=\"stylesheet\" href=\"/jolheiser.css\"></head><body>")
 		if templ_7745c5c3_Err != nil {
 			return templ_7745c5c3_Err
 		}
@@ -86,21 +86,39 @@ 			if !templ_7745c5c3_IsBuffer {
 				templ_7745c5c3_Buffer = templ.GetBuffer()
 				defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
 			}
-			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<main>")
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<header><h1>")
+			if templ_7745c5c3_Err != nil {
+				return templ_7745c5c3_Err
+			}
+			templ_7745c5c3_Var5 := `jolheiser`
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var5)
+			if templ_7745c5c3_Err != nil {
+				return templ_7745c5c3_Err
+			}
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h1><p>")
+			if templ_7745c5c3_Err != nil {
+				return templ_7745c5c3_Err
+			}
+			templ_7745c5c3_Var6 := `Just a guy living in the middle of nowhere who likes to hack on open-source.`
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var6)
+			if templ_7745c5c3_Err != nil {
+				return templ_7745c5c3_Err
+			}
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</p></header><main>")
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
 			for category, articles := range articles {
-				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<h2>")
+				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<h3>")
 				if templ_7745c5c3_Err != nil {
 					return templ_7745c5c3_Err
 				}
-				var templ_7745c5c3_Var5 string = category
-				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var5))
+				var templ_7745c5c3_Var7 string = category
+				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
 				if templ_7745c5c3_Err != nil {
 					return templ_7745c5c3_Err
 				}
-				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h2><ul>")
+				_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h3><ul>")
 				if templ_7745c5c3_Err != nil {
 					return templ_7745c5c3_Err
 				}
@@ -109,8 +127,8 @@ 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<li><a href=\"")
 					if templ_7745c5c3_Err != nil {
 						return templ_7745c5c3_Err
 					}
-					var templ_7745c5c3_Var6 templ.SafeURL = templ.SafeURL(article.Slug())
-					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var6)))
+					var templ_7745c5c3_Var8 templ.SafeURL = templ.SafeURL(article.Slug())
+					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(string(templ_7745c5c3_Var8)))
 					if templ_7745c5c3_Err != nil {
 						return templ_7745c5c3_Err
 					}
@@ -118,8 +136,8 @@ 					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("\">")
 					if templ_7745c5c3_Err != nil {
 						return templ_7745c5c3_Err
 					}
-					var templ_7745c5c3_Var7 string = article.Title
-					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
+					var templ_7745c5c3_Var9 string = article.Title
+					_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var9))
 					if templ_7745c5c3_Err != nil {
 						return templ_7745c5c3_Err
 					}
@@ -161,12 +179,12 @@ 			templ_7745c5c3_Buffer = templ.GetBuffer()
 			defer templ.ReleaseBuffer(templ_7745c5c3_Buffer)
 		}
 		ctx = templ.InitializeContext(ctx)
-		templ_7745c5c3_Var8 := templ.GetChildren(ctx)
-		if templ_7745c5c3_Var8 == nil {
-			templ_7745c5c3_Var8 = templ.NopComponent
+		templ_7745c5c3_Var10 := templ.GetChildren(ctx)
+		if templ_7745c5c3_Var10 == nil {
+			templ_7745c5c3_Var10 = templ.NopComponent
 		}
 		ctx = templ.ClearChildren(ctx)
-		templ_7745c5c3_Var9 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
+		templ_7745c5c3_Var11 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) {
 			templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer)
 			if !templ_7745c5c3_IsBuffer {
 				templ_7745c5c3_Buffer = templ.GetBuffer()
@@ -176,8 +194,8 @@ 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("<header><h1>")
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
-			var templ_7745c5c3_Var10 string = article.Title
-			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var10))
+			var templ_7745c5c3_Var12 string = article.Title
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
@@ -185,8 +203,8 @@ 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</h1><div style=\"display:flex;\"><p style=\"flex:auto;\"><em>")
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
-			var templ_7745c5c3_Var11 string = article.Category
-			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var11))
+			var templ_7745c5c3_Var13 string = article.Category
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var13))
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
@@ -194,8 +212,8 @@ 			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("</em></p><p style=\"flex:auto;\"><em>")
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
-			var templ_7745c5c3_Var12 string = article.Date.Format("Mon, 02 Jan 2006")
-			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var12))
+			var templ_7745c5c3_Var14 string = article.Date.Format("Mon, 02 Jan 2006")
+			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var14))
 			if templ_7745c5c3_Err != nil {
 				return templ_7745c5c3_Err
 			}
@@ -216,7 +234,7 @@ 				_, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer)
 			}
 			return templ_7745c5c3_Err
 		})
-		templ_7745c5c3_Err = baseTemplate(article.Title, article.Summary).Render(templ.WithChildren(ctx, templ_7745c5c3_Var9), templ_7745c5c3_Buffer)
+		templ_7745c5c3_Err = baseTemplate(article.Title, article.Summary).Render(templ.WithChildren(ctx, templ_7745c5c3_Var11), templ_7745c5c3_Buffer)
 		if templ_7745c5c3_Err != nil {
 			return templ_7745c5c3_Err
 		}