weiro/providers/sitebuilder/tmplfns.go

35 lines
665 B
Go

package sitebuilder
import (
"html/template"
"net/url"
"path/filepath"
"time"
"lmika.dev/lmika/weiro/models/pubmodel"
)
func templateFns(site pubmodel.Site, opts Options) template.FuncMap {
return template.FuncMap{
"url_abs": func(basePath string) (string, error) {
if site.BaseURL == "" {
return basePath, nil
}
pu, err := url.Parse(site.BaseURL)
if err != nil {
return "", err
}
pu.Path = filepath.Join(pu.Path, basePath)
return pu.String(), nil
},
"format_date": func(date time.Time) string {
loc := opts.RenderTZ
if loc == nil {
loc = time.Local
}
return date.In(loc).Format("02 Jan 2006")
},
}
}