mirror of
				https://github.com/Theodor-Springmann-Stiftung/musenalm.git
				synced 2025-10-31 02:05:32 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			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>
 | 
