2026-02-17 17:53:00 +01:00
|
|
|
<!DOCTYPE html>
|
2026-02-19 18:07:46 +01:00
|
|
|
<html lang="{{@site.lang}}"
|
|
|
|
|
x-data="{
|
|
|
|
|
theme: localStorage.getItem('theme') || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'),
|
|
|
|
|
init() {
|
|
|
|
|
$watch('theme', val => {
|
|
|
|
|
localStorage.setItem('theme', val);
|
|
|
|
|
document.documentElement.setAttribute('data-theme', val);
|
|
|
|
|
});
|
|
|
|
|
document.documentElement.setAttribute('data-theme', this.theme);
|
|
|
|
|
document.documentElement.classList.remove('hidden');
|
|
|
|
|
}
|
|
|
|
|
}"
|
|
|
|
|
:data-theme="theme"
|
|
|
|
|
class="hidden">
|
2026-02-17 17:53:00 +01:00
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
|
<title>{{meta_title}}</title>
|
|
|
|
|
<link rel="stylesheet" href="{{asset "built/screen.css"}}">
|
2026-02-17 18:54:09 +01:00
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Playfair+Display:wght@700&display=swap" rel="stylesheet">
|
2026-02-19 18:07:46 +01:00
|
|
|
|
|
|
|
|
<script defer src="https://cdn.jsdelivr.net/npm/alpinejs@3.x.x/dist/cdn.min.js"></script>
|
|
|
|
|
<script src="https://unpkg.com/htmx.org@2.0.0"></script>
|
|
|
|
|
|
2026-02-19 20:03:51 +01:00
|
|
|
<script>
|
|
|
|
|
document.addEventListener('alpine:init', () => {
|
|
|
|
|
Alpine.store('mobileMenu', {
|
|
|
|
|
open: false,
|
|
|
|
|
close() { this.open = false; },
|
|
|
|
|
openMenu() { this.open = true; }
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
document.addEventListener('htmx:beforeRequest', () => {
|
|
|
|
|
if (window.Alpine) Alpine.store('mobileMenu').close();
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
|
2026-02-17 17:53:00 +01:00
|
|
|
{{ghost_head}}
|
|
|
|
|
</head>
|
2026-02-19 20:06:25 +01:00
|
|
|
<body class="{{body_class}} font-sans antialiased">
|
|
|
|
|
{{!-- Mobile menu stays outside the boosted area to persist state --}}
|
|
|
|
|
{{> mobile-menu}}
|
2026-02-17 17:53:00 +01:00
|
|
|
|
2026-02-19 20:06:25 +01:00
|
|
|
<div class="min-h-screen flex flex-col" hx-boost="true">
|
2026-02-17 17:53:00 +01:00
|
|
|
{{> header}}
|
|
|
|
|
|
|
|
|
|
<main class="flex-grow">
|
|
|
|
|
{{{body}}}
|
|
|
|
|
</main>
|
|
|
|
|
|
|
|
|
|
{{> footer}}
|
2026-02-17 18:29:09 +01:00
|
|
|
</div>
|
|
|
|
|
|
2026-02-17 17:53:00 +01:00
|
|
|
{{ghost_foot}}
|
2026-02-17 19:21:42 +01:00
|
|
|
<script src="{{asset "js/ghost-config.js"}}"></script>
|
2026-02-17 17:53:00 +01:00
|
|
|
<script src="{{asset "js/main.js"}}"></script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|