summaryrefslogtreecommitdiff
path: root/cmd/generate/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/generate/main.go')
-rw-r--r--cmd/generate/main.go40
1 files changed, 37 insertions, 3 deletions
diff --git a/cmd/generate/main.go b/cmd/generate/main.go
index 249e2a5..dd226ad 100644
--- a/cmd/generate/main.go
+++ b/cmd/generate/main.go
@@ -5,6 +5,7 @@ import (
_ "embed"
"fmt"
"os"
+ "reflect"
"sort"
"strings"
"time"
@@ -40,6 +41,10 @@ var timeTagTmpl = template.Must(template.New("time.tag.tmpl").
Parse(`<time datetime="{{ .Machine }}" title="{{ .HumanVerbose }}">{{ .HumanPretty }}</time>`))
func mainWithError() error {
+ standups, err := ReadStandups("https://fosstodon.org", "lukeshu")
+ if err != nil {
+ return err
+ }
contribs, err := ReadContribs("imworkingon/contribs.yml")
if err != nil {
return err
@@ -67,6 +72,26 @@ func mainWithError() error {
tmpl := template.Must(template.New("imworkingon.html.tmpl").
Funcs(template.FuncMap{
+ "time": func() map[string]time.Weekday {
+ return map[string]time.Weekday{
+ "Sunday": time.Sunday,
+ "Monday": time.Monday,
+ "Tuesday": time.Tuesday,
+ "Wednesday": time.Wednesday,
+ "Thursday": time.Thursday,
+ "Friday": time.Friday,
+ "Saturday": time.Saturday,
+ }
+ },
+ "reverse": func(x any) any {
+ in := reflect.ValueOf(x)
+ l := in.Len()
+ out := reflect.MakeSlice(in.Type(), l, l)
+ for i := 0; i < l; i++ {
+ out.Index(l - (i + 1)).Set(in.Index(i))
+ }
+ return out.Interface()
+ },
"timeTag": func(ts time.Time, prettyFmt string) (template.HTML, error) {
ts = ts.Local()
var out strings.Builder
@@ -77,6 +102,13 @@ func mainWithError() error {
})
return template.HTML(out.String()), err
},
+ "monthClass": func(m time.Month) string {
+ if m%2 == 0 {
+ return "even-month"
+ } else {
+ return "odd-month"
+ }
+ },
"md2html": MarkdownToHTML,
"getUpstream": func(c Contribution) Upstream {
// First try any of the documented upstreams.
@@ -99,9 +131,11 @@ func mainWithError() error {
Parse(htmlTmplStr))
var out bytes.Buffer
if err := tmpl.Execute(&out, map[string]any{
- "Contribs": contribs,
- "Tags": tags,
- "Upstreams": upstreams,
+ "Contribs": contribs,
+ "Tags": tags,
+ "Upstreams": upstreams,
+ "Standups": standups,
+ "StandupCalendar": BuildCalendar(standups, func(status *MastodonStatus) Date { return DateOf(status.CreatedAt) }),
}); err != nil {
return err
}