Files
pivoine.art/layouts/_default/baseof.html
T

53 lines
1.8 KiB
HTML
Raw Normal View History

2026-04-08 19:49:15 +02:00
<!doctype html>
<html lang="{{ .Site.LanguageCode }}" class="scroll-smooth">
<head>
{{- partial "head.html" . -}}
</head>
<body
class="bg-void text-paper font-body min-h-screen flex flex-col antialiased"
hx-boost="true"
hx-select="#main-content"
hx-target="#main-content"
hx-swap="outerHTML"
hx-push-url="true"
>
<!-- HTMX transition progress bar -->
<div id="progress-bar" aria-hidden="true"></div>
{{- partial "nav.html" . -}}
{{- block "page-background" . -}}{{- end -}}
<main id="main-content" class="flex-1" style="view-transition-name: main-content">
{{- block "main" . }}{{- end }}
</main>
{{- partial "footer.html" . -}}
<!-- HTMX (page transitions & progressive enhancement) -->
<script src="https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js"></script>
<!-- Alpine.js store initialisation (must run before alpine:init) -->
<script>
document.addEventListener('alpine:init', () => {
Alpine.store('nav', { path: window.location.pathname, open: false })
})
</script>
<!-- Alpine.js (reactive UI — nav, interactions) -->
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.14.8/dist/cdn.min.js"></script>
<!-- Site JS -->
{{- $js := resources.Get "js/main.js" -}}
{{- if eq hugo.Environment "production" -}}
{{- $js = $js | minify | fingerprint "sha256" -}}
{{- end -}}
<script src="{{ $js.RelPermalink }}"{{ if eq hugo.Environment "production" }} integrity="{{ $js.Data.Integrity }}"{{ end }} defer></script>
{{- block "scripts" . }}{{- end }}
{{- if and (eq hugo.Environment "production") .Site.Params.umamiId -}}
<!-- Umami analytics — cookie-free, self-hosted -->
<script defer src="{{ .Site.Params.umamiSrc }}" data-website-id="{{ .Site.Params.umamiId }}"></script>
{{- end -}}
</body>
</html>