aboutsummaryrefslogtreecommitdiff
path: root/backend/data.go
diff options
context:
space:
mode:
Diffstat (limited to 'backend/data.go')
-rw-r--r--backend/data.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/backend/data.go b/backend/data.go
index 6ca6020..809e6e6 100644
--- a/backend/data.go
+++ b/backend/data.go
@@ -36,6 +36,7 @@ type data struct {
Links []Link
Logo *Logo
Quote string
+ Language string
}
func (d *data) SetData(data *data) {
@@ -74,6 +75,9 @@ func (d *data) merge(cfg *Config, r *http.Request) {
}
d.URL = r.URL.Path
}
+ if d.Language == "" {
+ d.Language = cfg.Language
+ }
}
func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string, custom dataUsable) {
@@ -92,6 +96,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 +121,15 @@ 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,
+ "uri": func(s string) string {
+ if s == "" {
+ return ""
+ }
+ return s + "/"
+ },
+ }).ParseFS(templates, "templates/rss.xml")
if err != nil {
panic(err)
}
@@ -197,3 +210,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]
+}