diff options
| author | William Hergès <william@herges.fr> | 2025-10-27 16:04:14 +0100 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2025-10-27 16:04:14 +0100 |
| commit | 0c3a89ee546a2a3215eb32d9786dabeda051812d (patch) | |
| tree | 5043137ab9b2a15b7a5786d4b7d22641ad06d403 /backend | |
| parent | 1f0cf029644861bc31a363ecfdbfcb6ebafff3b2 (diff) | |
fix(section): bad template for RSS
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/data.go | 10 | ||||
| -rw-r--r-- | backend/section.go | 1 | ||||
| -rw-r--r-- | backend/templates/rss.xml | 10 |
3 files changed, 16 insertions, 5 deletions
diff --git a/backend/data.go b/backend/data.go index 6ca6020..794b763 100644 --- a/backend/data.go +++ b/backend/data.go @@ -92,6 +92,7 @@ func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string }, "next": func(i int) int { return i + 1 }, "before": func(i int) int { return i - 1 }, + "first": templateFirst, }).ParseFS(templates, "templates/components.html", fmt.Sprintf("templates/%s.html", name), "templates/base.html") if err != nil { panic(err) @@ -116,7 +117,7 @@ func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string func (d *data) handleRSS(w http.ResponseWriter, r *http.Request, custom dataUsable) { cfg := r.Context().Value(configKey).(*Config) d.merge(cfg, r) - t, err := txt.ParseFS(templates, "templates/rss.xml") + t, err := txt.New("").Funcs(txt.FuncMap{"first": templateFirst}).ParseFS(templates, "templates/rss.xml") if err != nil { panic(err) } @@ -197,3 +198,10 @@ func getAsset(ctx context.Context, path string) *assetData { assets[path] = asset return asset } + +func templateFirst(a []*Section) *Section { + if len(a) == 0 { + return nil + } + return a[0] +} diff --git a/backend/section.go b/backend/section.go index 01ffc90..06b48cc 100644 --- a/backend/section.go +++ b/backend/section.go @@ -173,6 +173,7 @@ func (s *Section) handleRSS(w http.ResponseWriter, r *http.Request) { return } d.title = s.Name + d.PageDescription = s.Description d.handleRSS(w, r, d) } diff --git a/backend/templates/rss.xml b/backend/templates/rss.xml index 6d99272..2abca8e 100644 --- a/backend/templates/rss.xml +++ b/backend/templates/rss.xml @@ -3,15 +3,17 @@ <channel> <atom:link href="https://{{ .Domain }}{{ .URL }}" rel="self" type="application/rss+xml" /> <title>{{ .Title }}</title> - <link>https://{{ .Domain }}/{{ .URI }}/</link> + {{ $sec := first .Sections }} + {{ $uri := $sec.URI }} + <link>https://{{ .Domain }}/{{ $uri }}/</link> <description>{{ .PageDescription }}</description> <language>fr-fr</language> {{ $domain := .Domain }} - {{ range .Section.Data }} + {{ range $sec.Data }} <item> <title>{{ .DataTitle }}</title> - <link>https://{{ $domain }}/{{ .URI }}/{{ .Slug }}</link> - <guid>https://{{ $domain }}/{{ .URI }}/{{ .Slug }}</guid> + <link>https://{{ $domain }}/{{ $uri }}/{{ .Slug }}</link> + <guid>https://{{ $domain }}/{{ $uri }}/{{ .Slug }}</guid> <description>{{ .Description }}</description> <pubDate>{{ .PubDateRSS }}</pubDate> </item> |
