luanti-web/site_generator/templates/html_header.template
rainer a225feef98 feat(map): Implement interactive area overlays
This major update introduces a complete system for visualizing protected areas on the OpenLayers map. It adds a new sync script to process area data and heavily modifies the frontend to support interactive, multi-layer display with custom popups.

Additionally, data-sync scripts were refactored to run globally on all configured worlds, simplifying cron automation.
2025-06-23 01:41:17 +02:00

49 lines
2 KiB
Text
Executable file

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>%%current_page_title%% - %%SITE_TITLE%%</title>
<link rel="stylesheet" href="%%relative_path_prefix%%/style.css?v=%%CACHE_BUSTER%%">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.css" type="text/css">
<script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@main/dist/en/v7.0.0/legacy/ol.js"></script>
<script src="https://unpkg.com/ol-layerswitcher@4.1.1"></script>
<link rel="stylesheet" href="https://unpkg.com/ol-layerswitcher@4.1.1/dist/ol-layerswitcher.css" />
<script>
document.addEventListener('DOMContentLoaded', function() {
const scrollToTopBtn = document.getElementById('scrollToTopBtn');
if (scrollToTopBtn) {
window.addEventListener('scroll', function() {
window.requestAnimationFrame(function() {
if (window.scrollY > 300) {
scrollToTopBtn.classList.add('show');
} else {
scrollToTopBtn.classList.remove('show');
}
});
});
scrollToTopBtn.addEventListener('click', function(e) {
e.preventDefault();
window.scrollTo({ top: 0, behavior: 'smooth' });
});
}
});
</script>
</head>
<body>
<header>
<h1>%%SITE_TITLE%%</h1>
<div class="header-separator"></div>
<nav>
<ul>
<li class="%%active_class_home%%"><a href="%%relative_path_prefix%%/index.html">Startseite</a></li>
<li class="%%active_class_worlds%%"><a href="%%relative_path_prefix%%/worlds.html">Welten</a></li>
<li class="%%active_class_downloads%%"><a href="%%relative_path_prefix%%/downloads.html">Downloads</a></li>
</ul>
</nav>
</header>
<div class="header-banner"></div>
<div class="container">