templates/homepage.templ (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | package templates
import (
"go.alanpearce.eu/homestead/internal/config"
"go.alanpearce.eu/homestead/internal/content"
)
type HomepageVars struct {
Email string
Me []config.MenuItem
Posts []*content.Post
}
templ Homepage(site SiteSettings, vars HomepageVars, content templ.Component) {
@Layout(site, PageSettings{
Title: site.Title,
TitleAttrs: templ.Attributes{
"class": "p-name u-url",
},
Path: "/",
BodyAttrs: templ.Attributes{
"class": "h-card",
},
}) {
<div id="content">
@content
</div>
<section>
<h2>Latest Posts</h2>
@list(vars.Posts[0:5])
</section>
<section>
<h2>Elsewhere on the Internet</h2>
<ul class="elsewhere">
<li>
<a class="u-email" rel="me" href={ templ.SafeURL("mailto:" + vars.Email) }>
{ vars.Email }
</a>
</li>
for _, link := range vars.Me {
<li>
<a class="u-url" rel="me" href={ templ.SafeURL(link.URL.String()) }>{ link.Name }</a>
</li>
}
</ul>
</section>
}
}
|