hscontrol/templates: refactor to use CSS classes and embedded files

Refactor template system to use go:embed for external assets and
CSS classes for styling instead of inline styles:

- general.go: Add go:embed directives for style.css and headscale.svg,
  replace inline styles with CSS classes (H1, H2, H3, P, etc.),
  add mdTypesetBody wrapper with Material for MkDocs styling

- apple.go, oidc_callback.go, register_web.go, windows.go:
  Update to use new CSS-based helper functions (H1, H2, P, etc.)
  and mdTypesetBody for consistent layout

This separates content from presentation, making templates easier
to maintain and update. All styling is now centralized in style.css
with Material for MkDocs design system.
This commit is contained in:
Kristoffer Dalby
2025-10-28 16:29:00 +01:00
committed by Kristoffer Dalby
parent 285c4e46a9
commit 3ed1067a95
5 changed files with 320 additions and 396 deletions

View File

@@ -2,7 +2,6 @@ package templates
import (
"github.com/chasefleming/elem-go"
"github.com/chasefleming/elem-go/attrs"
)
func Windows(url string) *elem.Element {
@@ -10,28 +9,19 @@ func Windows(url string) *elem.Element {
elem.Title(nil,
elem.Text("headscale - Windows"),
),
elem.Body(attrs.Props{
attrs.Style: bodyStyle.ToInline(),
},
headerOne("headscale: Windows configuration"),
elem.P(nil,
mdTypesetBody(
headscaleLogo(),
H1(elem.Text("Windows configuration")),
P(
elem.Text("Download "),
elem.A(attrs.Props{
attrs.Href: "https://tailscale.com/download/windows",
attrs.Rel: "noreferrer noopener",
attrs.Target: "_blank",
},
elem.Text("Tailscale for Windows ")),
elem.Text("and install it."),
externalLink("https://tailscale.com/download/windows", "Tailscale for Windows"),
elem.Text(" and install it."),
),
elem.P(nil,
elem.Text("Open a Command Prompt or Powershell and use Tailscale's login command to connect with headscale: "),
),
elem.Pre(nil,
elem.Code(nil,
elem.Text("tailscale login --login-server "+url),
),
P(
elem.Text("Open a Command Prompt or PowerShell and use Tailscale's login command to connect with headscale:"),
),
Pre(PreCode("tailscale login --login-server "+url)),
pageFooter(),
),
)
}