Implemented the analytics preconnect hint on the Page protocol in the Infrastructure package.

This commit is contained in:
2026-08-04 12:19:20 +02:00
parent c603421c28
commit 16acdf0f3d
4 changed files with 73 additions and 5 deletions
@@ -76,9 +76,9 @@ public extension Page {
content
}
/// The viewport declaration, the ``summary``, ``canonicalURL``, and ``socialCard`` tags, the ``structuredData`` script and the
/// ``analytics`` tracker script (when provided), and the ``metadata`` followed by the ``stylesheets`` links and the deferred
/// ``scripts`` tags, placed in the document head.
/// The viewport declaration, the ``analytics`` origin preconnect hint, the ``summary``, ``canonicalURL``, and ``socialCard``
/// tags, the ``structuredData`` script and the ``analytics`` tracker script (when provided), and the ``metadata`` followed by the
/// ``stylesheets`` links and the deferred ``scripts`` tags, placed in the document head.
///
/// The charset declaration is omitted: Elementary's `HTMLDocument` scaffolding already emits `<meta charset="UTF-8">` before this markup,
/// and HTML5 allows only one.
@@ -92,7 +92,15 @@ public extension Page {
.name(.viewport),
.content("width=device-width, initial-scale=1")
)
// Rendered first so the cross-origin handshake starts before the parser reaches the tracker script tag.
if let origin = analytics?.origin {
link(
.rel("preconnect"),
.href(origin)
)
}
if let summary {
meta(
.name(.description),