{% import ( "golang.org/x/text/language" "golang.org/x/text/message" "source.toby3d.me/toby3d/auth/internal/domain" ) %} {% interface Page { Body() Head() Lang() Title() T(format string, args ...interface{}) } %} {% code type BaseOf struct { Config *domain.Config Language language.Tag Printer *message.Printer } %} {% stripspace %} {% func (p *BaseOf) Lang() %} {% if p.Language != language.Und %} {%s p.Language.String() %} {% else %} en {% endif %} {% endfunc %} {% endstripspace %} {% collapsespace %} {% func (p *BaseOf) Title() %} {%s p.Config.Name %} {% endfunc %} {% func (p *BaseOf) Head() %} {% comment %}https://evilmartians.com/chronicles/how-to-favicon-in-2021-six-files-that-fit-most-needs{% endcomment %} {% endfunc %} {% func (p *BaseOf) Body() %}{% endfunc %} {% func Template(p Page) %} {%= p.Head() %} {%= p.Title() %} {%= p.Body() %} {% endfunc %} {% func (p *BaseOf) T(format string, args ...interface{}) %} {%s p.Printer.Sprintf(format, args...) %} {% endfunc %} {% endcollapsespace %}