Files
jbergner 33e971bab7
All checks were successful
release-tag / release-image (push) Successful in 1m57s
Branding aktualisiert
2026-07-26 20:19:01 +02:00

87 lines
3.7 KiB
HTML

{{define "operator.html"}}
<!doctype html>
<html lang="{{.Lang}}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{{.LegalPage.Title}} · {{.Name}}</title>
<meta name="description" content="{{.LegalPage.Lead}}">
<link rel="canonical" href="{{.BaseURL}}/{{.LegalPage.Kind}}?lang={{.Lang}}">
{{range .Languages}}<link rel="alternate" hreflang="{{.Code}}" href="{{$.BaseURL}}/{{$.LegalPage.Kind}}?lang={{.Code}}">{{end}}
<link rel="alternate" hreflang="x-default" href="{{.BaseURL}}/{{.LegalPage.Kind}}">
{{if not .WhiteLabel}}
<meta name="theme-color" content="#F8FAFC">
<link rel="icon" href="/static/brand/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/static/brand/ucng-icon-32.png">
<link rel="icon" type="image/png" sizes="192x192" href="/static/brand/ucng-icon-192.png">
<link rel="icon" type="image/png" sizes="512x512" href="/static/brand/ucng-icon-512.png">
<link rel="apple-touch-icon" sizes="192x192" href="/static/brand/ucng-icon-192.png">
<meta property="og:image" content="{{.BaseURL}}/static/brand/ucng-open-graph.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
{{end}}
<link rel="stylesheet" href="/static/style.css">
</head>
<body class="operator-page">
<header class="site-header">
<a class="brand" href="/?lang={{.Lang}}">{{if .WhiteLabel}}<span class="brand-text">{{.Name}}</span>{{else}}<img src="/static/brand/ucng-logo.png" width="800" height="233" alt="UCNG — Universal Content Notation Guidelines">{{end}}</a>
<nav>
<a href="/?lang={{.Lang}}">{{index .Text "nav_generator"}}</a>
<a href="/background?lang={{.Lang}}">{{index .Text "nav_background"}}</a>
<a href="/legal?lang={{.Lang}}">{{legalLabel .Lang "legal"}}</a>
<a href="/privacy?lang={{.Lang}}">{{legalLabel .Lang "privacy"}}</a>
<a href="/accessibility?lang={{.Lang}}">{{legalLabel .Lang "accessibility"}}</a>
</nav>
<label class="language-switch"><span class="sr-only">{{index .Text "field_language"}}</span><select id="operator-language">
{{range .Languages}}<option value="{{.Code}}" {{if eq $.Lang .Code}}selected{{end}}>{{.Name}}</option>{{end}}
</select></label>
</header>
<main class="operator-main">
<section class="operator-hero">
<p class="eyebrow">{{if .WhiteLabel}}{{.Name}}{{else}}UCNG{{end}}</p>
<h1>{{.LegalPage.Title}}</h1>
<p class="lead">{{.LegalPage.Lead}}</p>
</section>
<div class="operator-grid">
{{range .LegalPage.Sections}}
<section class="operator-card">
<h2>{{.Title}}</h2>
{{range .Paragraphs}}<p>{{.}}</p>{{end}}
{{if .Items}}
<dl class="operator-facts">
{{range .Items}}
<div><dt>{{.Label}}</dt><dd>{{if .URL}}<a href="{{.URL}}">{{.Value}}</a>{{else}}{{.Value}}{{end}}</dd></div>
{{end}}
</dl>
{{end}}
</section>
{{end}}
</div>
<aside class="operator-notice">
<strong>{{.LegalPage.NoticeTitle}}</strong>
<p>{{.LegalPage.Notice}}</p>
</aside>
</main>
<footer>
<span>{{if not .WhiteLabel}}UCNG · {{end}}App 2.0.2 · Schema 1.2</span>
<span><a href="/legal?lang={{.Lang}}">{{legalLabel .Lang "legal"}}</a> · <a href="/privacy?lang={{.Lang}}">{{legalLabel .Lang "privacy"}}</a> · <a href="/accessibility?lang={{.Lang}}">{{legalLabel .Lang "accessibility"}}</a></span>
</footer>
<script>
(() => {
const select = document.getElementById('operator-language');
if (!select) return;
select.addEventListener('change', () => {
const url = new URL(window.location.href);
url.searchParams.set('lang', select.value);
window.location.assign(url.toString());
});
})();
</script>
</body>
</html>
{{end}}