github.com/PDOK/gokoala@v0.50.6/internal/engine/templates/layout.go.html (about) 1 {{- /*gotype: github.com/PDOK/gokoala/internal/engine.TemplateData*/ -}} 2 <!DOCTYPE html> 3 <html lang="nl" class="h-100"> 4 <base href="{{ .Config.BaseURL }}/" /> 5 6 <head> 7 <meta charset="UTF-8"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 10 <title>{{ .Config.Title }} (OGC API)</title> 11 12 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet" 13 integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous"> 14 <link href="css/gokoala.css" rel="stylesheet"> 15 16 <link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png"> 17 <link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png"> 18 <link rel="shortcut icon" href="img/favicon.ico"> 19 <script type="text/javascript"> 20 // match window title to page title 21 window.addEventListener("load", (event) => { 22 if (document.getElementById("title")) { 23 document.title = document.getElementById("title").innerHTML; 24 } 25 }); 26 27 function setLanguage(lang) { 28 document.cookie = 'lang='+lang+';path=/;max-age={{ .Config.CookieMaxAge }};same-site=strict;secure'; 29 return true; 30 } 31 </script> 32 </head> 33 34 <body class="d-flex flex-column h-100"> 35 <!-- header --> 36 <header> 37 <!-- skip link --> 38 <a class="visually-hidden visually-hidden-focusable" href="#main" aria-label="{{ i18n "ToMain" }}">{{ i18n "ToMain" }}</a> 39 40 <nav class="navbar d-flex flex-column w-100" aria-label="top navigation"> 41 <!-- logo --> 42 <div class="container"> 43 <a class="navbar-brand py-3" href="{{ .Config.BaseURL }}" aria-label="{{ i18n "Logo" }}"> 44 <img src="img/logo-header.svg" alt="{{ i18n "Logo" }}"> 45 </a> 46 </div> 47 48 <!-- top navigation --> 49 <div class="container"> 50 {{ $lastcrumb := last .Breadcrumbs }} 51 52 <nav aria-label="breadcrumb"> 53 <ol class="breadcrumb"> 54 {{ if .Config.DatasetCatalogURL.URL }} 55 <li class="breadcrumb-item"><a href="{{ .Config.DatasetCatalogURL }}" target="_blank" aria-label="{{ i18n "To" }} Datasets">Datasets</a></li> 56 {{ end }} 57 {{ if .Breadcrumbs }} 58 <li class="breadcrumb-item"><a href="{{ .Config.BaseURL }}" aria-label="{{ i18n "To" }} {{ .Config.ServiceIdentifier }}">{{ .Config.ServiceIdentifier }}</a></li> 59 {{ else }} 60 <li class="breadcrumb-item active">{{ .Config.ServiceIdentifier }}</li> 61 {{ end }} 62 63 {{ range $breadcrumb := .Breadcrumbs }} 64 {{ if ne $breadcrumb.Name $lastcrumb.Name }} 65 <li class="breadcrumb-item"><a href="{{ $breadcrumb.Path }}" aria-label="{{ i18n "To" }} {{ $breadcrumb.Name }}">{{ $breadcrumb.Name }}</a></li> 66 {{ else }} 67 <li class="breadcrumb-item active">{{ $breadcrumb.Name }}</li> 68 {{ end }} 69 {{ end }} 70 </ol> 71 </nav> 72 73 <nav style="--bs-breadcrumb-divider: '|';" aria-label="switch language or format"> 74 <ol class="breadcrumb"> 75 {{ $languageSwitchCode := (i18n "LanguageSwitchCode") }} 76 {{ if gt (len .Config.AvailableLanguages) 1 }} 77 <!-- TODO: support switching between more than two languages --> 78 <li class="breadcrumb-item"><a href="{{ empty $.Breadcrumbs | ternary "" $lastcrumb.Path }}" onclick="setLanguage('{{ $languageSwitchCode }}');" 79 aria-label="{{ i18n "SwitchLanguage" }} {{ i18n "LanguageSwitchLabel" }}">{{ i18n "LanguageSwitchLabel" }}</a></li> 80 {{ end }} 81 {{ range $formatKey, $formatName := .AvailableFormats }} 82 <li class="breadcrumb-item"><a href="{{ empty $.Breadcrumbs | ternary "" $lastcrumb.Path }}{{ $.QueryString $formatKey }}" target="_blank" 83 aria-label="{{ i18n "SwitchFormat" }} {{ $formatName }}">{{ $formatName }}</a></li> 84 {{ end }} 85 </ol> 86 </nav> 87 </div> 88 </nav> 89 </header> 90 91 <!-- main content --> 92 <main id="main"> 93 <div class="container py-3"> 94 <!-- Include content --> 95 {{block "content" .}}{{end}} 96 </div> 97 </main> 98 99 <!-- footer --> 100 <footer class="footer mt-auto py-3"> 101 <div class="container"> 102 <div class="row"> 103 <div class="col-1"> 104 <!-- place additional footer links here --> 105 </div> 106 <div class="col-11 text-end"> 107 <img src="img/logo-footer.png" alt="{{ i18n "FooterLogo" }}"> 108 </div> 109 </div> 110 </div> 111 </footer> 112 113 </body> 114 </html>