git / moonbite-network / templates/base.html · raw
<!DOCTYPE html><html lang="en" data-theme="dark"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="0"> <title>{% block title %}MoonBite (MBITE) — Fair-launch crypto you can mine{% endblock %}</title> <meta name="description" content="{% block meta_description %}MoonBite (MBITE) is an open, fair-launch coin you can mine on a laptop, hold in a self-custody wallet, and run yourself. Live on mainnet.{% endblock %}"> <link rel="icon" type="image/svg+xml" href="{{ url_for('static', filename='moonbite-logo.svg') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='fonts/moonbite-fonts.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='site.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename='moonbite-v2.css') }}"> {% block head_extra %}{% endblock %}</head><body class="mbs-page {% block body_class %}{% endblock %}"> {% include "partials/mega_nav.html" %} <main id="main"> {% block content %}{% endblock %} </main> {% include "partials/mega_footer.html" %} <script nonce="{{ csp_nonce }}"> // Force clear old service worker caches and register new version if ('serviceWorker' in navigator) { navigator.serviceWorker.getRegistrations().then(registrations => { registrations.forEach(reg => reg.unregister()); }); caches.keys().then(cacheNames => { cacheNames.forEach(cacheName => caches.delete(cacheName)); }); navigator.serviceWorker.register('/static/service-worker.js'); } // Reveal page + fade out loader once ready (with a safety fallback). (function () { function reveal() { document.body.classList.add('loaded'); } window.addEventListener('load', function () { setTimeout(reveal, 300); }); setTimeout(reveal, 2000); })(); // Theme init (single source of truth — child pages must NOT redeclare // htmlElement / themeToggle or they'll throw "already declared"). var htmlElement = document.documentElement; var themeToggle = document.getElementById('themeToggle'); // The site is dark by design (one universal shell); no light toggle. var isDark = true; htmlElement.setAttribute('data-theme', 'dark'); if (themeToggle) { themeToggle.textContent = isDark ? 'Light Mode' : 'Dark Mode'; themeToggle.addEventListener('click', function () { var current = htmlElement.getAttribute('data-theme'); var next = current === 'dark' ? 'light' : 'dark'; htmlElement.setAttribute('data-theme', next); localStorage.setItem('theme', next); themeToggle.textContent = next === 'dark' ? 'Light Mode' : 'Dark Mode'; }); } </script> <script defer src="{{ url_for('static', filename='site.js') }}"></script> {% block scripts_extra %}{% endblock %}</body></html>