package templates import ( "github.com/dustin/go-humanize" "go.alanpearce.eu/elgit/data" g "go.alanpearce.eu/gomponents" c "go.alanpearce.eu/gomponents/components" . "go.alanpearce.eu/gomponents/html" ) func Index(pd PageData, entries *data.Entries) g.Node { return Page(pd, g.Group{ Header( H1(g.Text(pd.Meta.Title)), H2(g.Text(pd.Meta.Description)), ), Main( Div(Class("index"), g.Map(entries.Children, func(entry *data.Entry) g.Node { return g.If(len(entry.Repositories) == 1, Repository(entry.Repositories[0], 0), ) }), g.MapMap(entries.Map, func(category string, entry *data.Entry) g.Node { return g.Group{ Div(Class("index-category"), Header(g.Text(category)), ), g.Map(entry.Repositories, func(repo *data.Repository) g.Node { return Repository(repo, 1) }), } }), ), ), }) } func Repository(repo *data.Repository, level int) g.Node { return g.Group{ Div( c.Classes{ "index-name": level == 0, "index-category-name": level >= 1, }, A(Href("/"+repo.Slug), g.Text(repo.Name)), ), Div(Class("desc"), g.Text(repo.Description)), Div(g.Text(humanize.Time(repo.LastCommit))), } }