update htmlformat
3 files changed, 54 insertions(+), 67 deletions(-)
changed files
M domain/web/templates/layout.go → domain/web/templates/layout.go
@@ -5,8 +5,8 @@ "io" g "alin.ovh/gomponents" . "alin.ovh/gomponents/html" + "alin.ovh/htmlformat" "github.com/Southclaws/fault" - "github.com/alanpearce/htmlformat" "alin.ovh/homestead/shared/config" )@@ -51,60 +51,61 @@ }) } func Layout(site SiteSettings, page PageSettings, children ...g.Node) g.NodeWriter { - return DoctypeHTML(FormattedDocument( - HTML( - Lang(site.Language), - Head( - Meta(Name("viewport"), Content("width=device-width, initial-scale=1.0")), - TitleEl(g.Text(page.Title)), - Link( - Rel("stylesheet"), - Type("text/css"), - Href("/style.css"), - ), - Link( - Rel("alternate"), - Type("application/atom+xml"), - Title(site.Title), - Href("/atom.xml"), + return FormattedDocument( + Doctype( + HTML( + Lang(site.Language), + Head( + Meta(Name("viewport"), Content("width=device-width, initial-scale=1.0")), + TitleEl(g.Text(page.Title)), + Link( + Rel("stylesheet"), + Type("text/css"), + Href("/style.css"), + ), + Link( + Rel("alternate"), + Type("application/atom+xml"), + Title(site.Title), + Href("/atom.xml"), + ), + g.Group(page.HeadExtra), ), - g.Group(page.HeadExtra), - ), - Body( - ExtendAttrs(page.BodyAttrs, nil), - A(Class("skip"), Href("#main"), g.Text("Skip to main content")), - Header( - H2( + Body( + ExtendAttrs(page.BodyAttrs, nil), + A(Class("skip"), Href("#main"), g.Text("Skip to main content")), + Header( + H2( + A( + ExtendAttrs(Attrs{ + "class": "title p-name", + "href": "/", + }, page.TitleAttrs), + g.Text(site.Title)), + ), + Nav( + g.Map(site.Menu, MenuLink), + ), + ), + Main(ID("main"), g.Group(children)), + Footer( + A(Href("https://git.alin.ovh/website"), g.Text("Content")), + g.Text(" is "), A( - ExtendAttrs(Attrs{ - "class": "title p-name", - "href": "/", - }, page.TitleAttrs), - g.Text(site.Title)), + Rel("license"), + Href("http://creativecommons.org/licenses/by/4.0/"), + g.Text("CC BY 4.0"), + ), + g.Text(". "), + A(Href("https://git.alin.ovh/homestead"), g.Text("Site source code")), + g.Text(" is "), + A(Href("https://opensource.org/licenses/MIT"), g.Text("MIT")), ), - Nav( - g.Map(site.Menu, MenuLink), + g.If(site.InjectLiveReload, + LiveReload, ), ), - Main(ID("main"), g.Group(children)), - Footer( - A(Href("https://git.alin.ovh/website"), g.Text("Content")), - g.Text(" is "), - A( - Rel("license"), - Href("http://creativecommons.org/licenses/by/4.0/"), - g.Text("CC BY 4.0"), - ), - g.Text(". "), - A(Href("https://git.alin.ovh/homestead"), g.Text("Site source code")), - g.Text(" is "), - A(Href("https://opensource.org/licenses/MIT"), g.Text("MIT")), - ), - g.If(site.InjectLiveReload, - LiveReload, - ), - ), - ))) + ))) } func MenuLink(item config.MenuItem) g.Node {@@ -131,17 +132,3 @@ return 0, nil }) } - -func DoctypeHTML(sibling g.Node) g.NodeWriter { - return g.NodeWriterFunc(func(w io.Writer) (int64, error) { - if _, err := w.Write([]byte("<!doctype html>\n")); err != nil { - return 0, err - } - - if sibling, ok := sibling.(g.NodeWriter); ok { - return sibling.WriteTo(w) - } - - return 0, sibling.Render(w) - }) -}
M go.mod → go.mod
@@ -4,11 +4,11 @@ go 1.25.0 require ( alin.ovh/gomponents v1.8.0 + alin.ovh/htmlformat v0.0.0-20251010213008-91ad1b658961 alin.ovh/x v1.2.0 github.com/BurntSushi/toml v1.5.0 github.com/Southclaws/fault v0.8.2 github.com/adrg/frontmatter v0.2.0 - github.com/alanpearce/htmlformat v0.0.0-20250508141223-2478490ea63e github.com/andybalholm/brotli v1.2.0 github.com/ardanlabs/conf/v3 v3.9.0 github.com/benpate/digit v0.13.7
M go.sum → go.sum
@@ -2,6 +2,8 @@ 9fans.net/go v0.0.8-0.20250307142834-96bdba94b63f h1:1C7nZuxUMNz7eiQALRfiqNOm04+m3edWlRff/BYHf0Q= 9fans.net/go v0.0.8-0.20250307142834-96bdba94b63f/go.mod h1:hHyrZRryGqVdqrknjq5OWDLGCTJ2NeEvtrpR96mjraM= alin.ovh/gomponents v1.8.0 h1:KE5y9yRRe/H8se4BVqcc86gNSHqVs/eyIqWDf79m9nc= alin.ovh/gomponents v1.8.0/go.mod h1:RQtPwKzGB0Nt1JTBDSqRzH2w/mg/6PkuhnNvQMV0/AQ= +alin.ovh/htmlformat v0.0.0-20251010213008-91ad1b658961 h1:HN/MuObNhEMzPywtcmCYUc49Jf9dEehxP9mOkGi5KHI= +alin.ovh/htmlformat v0.0.0-20251010213008-91ad1b658961/go.mod h1:bxJqwxVbWSEf1MMgHZ72aLL7yhaxWcGOVZ+6vQc6wVQ= alin.ovh/x v1.2.0 h1:YhI0zB4kRS86ClS1QzOaqhIg79ov0vRXAGBE1MfIr/w= alin.ovh/x v1.2.0/go.mod h1:L1xZ3Dn5v2Iw9zkktaYHhJelMT1MnBbO+sfyoyvzK+Q= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=@@ -26,8 +28,6 @@ github.com/adrg/frontmatter v0.2.0 h1:/DgnNe82o03riBd1S+ZDjd43wAmC6W35q67NHeLkPd4= github.com/adrg/frontmatter v0.2.0/go.mod h1:93rQCj3z3ZlwyxxpQioRKC1wDLto4aXHrbqIsnH9wmE= github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A= github.com/akutz/memconn v0.1.0/go.mod h1:Jo8rI7m0NieZyLI5e2CDlRdRqRRB4S7Xp77ukDjH+Fw= -github.com/alanpearce/htmlformat v0.0.0-20250508141223-2478490ea63e h1:WUq+YsA2RWKW6Sp730HWrVpnvqZBfMWbfzNaJLRgN28= -github.com/alanpearce/htmlformat v0.0.0-20250508141223-2478490ea63e/go.mod h1:NuI2MNYN6mukKP39/o2joOiZk4LiQdzrKf19Njq0t2c= github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa h1:LHTHcTQiSGT7VVbI0o4wBRNQIgn917usHWOd6VAffYI= github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=