{{/*
The SourceHut chrome. The brand, the service switcher, the login block and the
environment banner are NOT rendered here: they come from sr-ht-ecore's shared
partials ("srht-env-banner", "srht-nav"), which every custom service on this
instance draws from one copy. The dot is a handler's view struct, which embeds
chrome.Page, so the fields those partials read promote into it.
What is left here is the document itself and the content hole. The wrapper's
width is .ContainerClass rather than a literal "container": the row browser
hands out "container-fluid" so a wide table gets the whole viewport, and every
other page gets the centered default chrome.Page already carries.
*/}}
{{define "layout" -}}
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{{.Title}}</title>
<link rel="icon" type="image/svg+xml" href="/static/logo.svg" />
{{/* Guarded rather than emitted empty: <link href=""> re-requests the page
it is on, which is one extra page load per page load. */}}
{{if .StyleHref}}<link rel="stylesheet" href="{{.StyleHref}}">{{end}}
</head>
<body>
{{template "srht-env-banner" .}}
<nav class="container navbar navbar-light navbar-expand-sm">
{{template "srht-nav" .}}
</nav>
<div class="{{.ContainerClass}}">
{{template "content" .}}
</div>
</body>
</html>
{{- end}}