package templates import ( "alin.ovh/homestead/domain/content" "alin.ovh/homestead/domain/web/templates" "alin.ovh/homestead/shared/config" g "alin.ovh/gomponents" . "alin.ovh/gomponents/html" ) type HomepageVars struct { Email string Me []config.MenuItem Posts []*content.Post } func Homepage(site templates.SiteSettings, vars HomepageVars, content g.Node) g.Node { return templates.Layout(site, templates.PageSettings{ Title: site.Title, TitleAttrs: templates.Attrs{"class": "p-name u-url"}, BodyAttrs: templates.Attrs{"class": "h-card"}, }, Div( ID("content"), content, ), Section( H2(g.Text("Latest Posts")), list(vars.Posts[0:5]), ), Section( H2(g.Text("Elsewhere on the Internet")), Ul(Class("elsewhere"), Li( A(Class("u-email"), Rel("me"), Href("mailto:"+vars.Email), g.Text(vars.Email)), ), g.Map(vars.Me, func(link config.MenuItem) g.Node { return Li( A(Class("u-url"), Rel("me"), Href(link.URL.String()), g.Text(link.Name)), ) }), ), ), ) }