66 lines
4.2 KiB
Plaintext
66 lines
4.2 KiB
Plaintext
---
|
||
const { title, description, jsonld } = Astro.props;
|
||
const desc = description ?? 'Kühlfinder – das richtige portable Klimagerät finden und sehen, wo es heute verfügbar ist.';
|
||
import '../styles/global.css';
|
||
---
|
||
<!doctype html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<title>{title}</title>
|
||
<meta name="description" content={desc} />
|
||
<link rel="canonical" href={Astro.url.href} />
|
||
<meta property="og:title" content={title} />
|
||
<meta property="og:description" content={desc} />
|
||
<meta property="og:type" content="website" />
|
||
{jsonld && <script type="application/ld+json" set:html={JSON.stringify(jsonld)} />}
|
||
<!-- Umami Analytics (self-hosted). TODO: data-website-id setzen, Host prüfen. -->
|
||
<script defer is:inline src="https://umami.heidrich-digital.de/script.js" data-website-id="REPLACE_WITH_UMAMI_WEBSITE_ID" data-domains="kuehlfinder.de"></script>
|
||
</head>
|
||
<body>
|
||
<header class="site"><div class="wrap bar">
|
||
<a class="brand" href="/">Kühl<b>finder</b></a>
|
||
<nav>
|
||
<a href="/geraete">Geräte</a>
|
||
<a href="/rechner">Rechner</a>
|
||
<a href="/finder">Finder</a>
|
||
<a href="/alarm">Alarm</a>
|
||
<a href="/pro" data-umami-event="nav_pro">Pro</a>
|
||
<a href="/login">Login</a>
|
||
<a class="nav-cta" href="/karte" data-umami-event="nav_live_karte">Live-Karte</a>
|
||
</nav>
|
||
</div></header>
|
||
<main><slot /></main>
|
||
<script is:inline>
|
||
(function(){
|
||
const rm = matchMedia('(prefers-reduced-motion: reduce)').matches;
|
||
const io = ('IntersectionObserver' in window) ? new IntersectionObserver((es)=>{
|
||
es.forEach(e=>{ if(e.isIntersecting){ e.target.classList.add('in'); io.unobserve(e.target); } });
|
||
},{rootMargin:'0px 0px -8% 0px'}) : null;
|
||
function wire(){
|
||
document.querySelectorAll('.reveal:not(.in)').forEach(el=> io? io.observe(el): el.classList.add('in'));
|
||
document.querySelectorAll('[data-count]:not([data-done])').forEach(el=>{
|
||
const target=+el.getAttribute('data-count'); if(isNaN(target))return; el.setAttribute('data-done','1');
|
||
if(rm){ el.textContent=target.toLocaleString('de-DE'); return; }
|
||
const dur=900, t0=performance.now();
|
||
(function step(t){ const p=Math.min(1,(t-t0)/dur); const v=Math.round(target*(1-Math.pow(1-p,3)));
|
||
el.textContent=v.toLocaleString('de-DE'); if(p<1)requestAnimationFrame(step); })(t0);
|
||
});
|
||
}
|
||
document.addEventListener('DOMContentLoaded',wire); wire();
|
||
window.kfAnim=wire;
|
||
window.track=function(name,data){try{window.umami&&window.umami.track(name,data);}catch(e){}};
|
||
// Auto-Tracking ausgehender Affiliate-/Partner-Links
|
||
document.addEventListener('click',function(e){var a=e.target.closest&&e.target.closest('a[href^="http"]');if(!a)return;var rel=(a.getAttribute('rel')||'');var host=(a.hostname||'');if(rel.includes('sponsored')||/amazon|ebay|idealo|mediamarkt|saturn|obi|bauhaus|hornbach|toom|hagebau|globus|klempnerei-stoever|tgasolutions/i.test(host)){window.track&&window.track('outbound_click',{host:host,label:(a.textContent||'').trim().slice(0,40)});}},true);
|
||
})();
|
||
</script>
|
||
<footer class="site"><div class="wrap">
|
||
<p class="note"><strong>Transparenz:</strong> Einige Links sind Affiliate-Links – kaufst du darüber, erhalten wir ggf. eine Provision, für dich ändert sich der Preis nicht. Empfehlungen basieren auf Nutzungsfall, Technik, Testquellen und redaktioneller Einschätzung – nicht auf Provision.</p>
|
||
<p class="note">Preise und Verfügbarkeit ändern sich während Hitzewellen sehr schnell. Wir halten Daten so aktuell wie möglich, geben aber keine Garantie. Bitte beim Händler final prüfen.</p>
|
||
<p class="note"><a href="/rechner">Klima-Rechner</a> · <a href="/soforthilfe">Hitze-Soforthilfe</a> · <a href="/klimaanlage-installieren">Fest installieren</a> · <a href="/portasplit">PortaSplit</a> · <a href="/hitzeschutz">Hitzeschutz</a> · <a href="/prognose">Prognose-Methodik</a></p>
|
||
<p class="note"><a href="/transparenz">Transparenz & Methodik</a> · <a href="/impressum">Impressum</a> · <a href="/datenschutz">Datenschutz</a> · © {new Date().getFullYear()} Kühlfinder</p>
|
||
</div></footer>
|
||
</body>
|
||
</html>
|