Files
musenalm/views/layouts/default/root.gohtml

80 lines
2.2 KiB
Plaintext

<!doctype html>
<html class="w-full h-full" {{ if .lang }}lang="{{ .lang }}"{{ end }}>
<head>
<meta charset="UTF-8" />
{{ block "head" . }}
<!-- Default Head elements -->
{{ end }}
{{ if .isDev }}
<link rel="icon" href="/assets/logo/dev_favicon.png" />
<meta name="robots" content="noindex" />
{{ else }}
{{ if .url }}
<link rel="canonical" href="{{ .url }}" />
{{ end }}
<link rel="icon" href="/assets/logo/favicon.png" />
{{ end }}
<script type="module" src="/assets/scripts.js"></script>
<script src="/assets/js/alpine.min.js" defer></script>
<script src="/assets/js/htmx.min.js" defer></script>
<script src="/assets/js/htmx-response-targets.js" defer></script>
<script src="/assets/js/client-side-templates.js" defer></script>
<script src="/assets/js/mark.min.js" defer></script>
<link href="/assets/css/remixicon.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="/assets/css/fonts.css" />
<link rel="stylesheet" type="text/css" href="/assets/style.css" />
{{ if .isDev -}}
{{/* INFO: this runs airs injected script on page load, in dev mode */}}
{{/* INFO: Make sure airs proxy runs on port 8081 */}}
<script type="module">
function hookupAIR() {
const port = window.location.port;
if (!port || port !== "8081") {
return;
}
document.body.addEventListener("htmx:afterSwap", (event) => {
if (event.detail.target === document.body) {
const scriptEl = document.querySelector("body > script:last-of-type");
if (scriptEl && scriptEl.textContent.trim()) {
new Function(scriptEl.textContent)();
}
}
});
}
hookupAIR();
</script>
{{- end }}
</head>
<body class="w-full text-lg" hx-ext="response-targets" hx-boost="true">
<div class="flex flex-col min-h-screen w-full">
<header class="container-normal" id="header">
{{ block "_menu" . }}
<!-- Default app menu... -->
{{ end }}
</header>
<main class="">
{{ block "body" . }}
<!-- Default app body... -->
{{ end }}
</main>
<footer class="container-normal">
{{ block "_footer" . }}
{{ end }}
</footer>
<scroll-button></scroll-button>
</div>
</body>
</html>