Spaces:
Sleeping
Sleeping
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <title>{% block title %}Research Intelligence{% endblock %}</title> | |
| <meta name="description" content="Research paper triage — AI/ML and Security"> | |
| <meta name="theme-color" content="#0b1121"> | |
| <meta name="apple-mobile-web-app-capable" content="yes"> | |
| <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> | |
| <meta name="apple-mobile-web-app-title" content="Research"> | |
| <link rel="manifest" href="/static/manifest.json"> | |
| <link rel="icon" href="/static/favicon.svg" type="image/svg+xml"> | |
| <link rel="apple-touch-icon" href="/static/favicon-192.png"> | |
| <link rel="stylesheet" href="/static/style.css"> | |
| <script src="/static/htmx.min.js"></script> | |
| </head> | |
| <body> | |
| <div class="page-loader htmx-indicator" id="page-loader"></div> | |
| <nav> | |
| <a href="/" class="logo" style="text-decoration:none"> | |
| <span class="logo-dot"></span> | |
| Research Intelligence | |
| </a> | |
| <div class="nav-links"> | |
| <a href="/" class="{% if active == 'dashboard' %}active{% endif %}">Dashboard</a> | |
| <a href="/papers/aiml" class="{% if active == 'aiml' %}active{% endif %}">AI / ML</a> | |
| <a href="/papers/security" class="{% if active == 'security' %}active{% endif %}">Security</a> | |
| {% if github_enabled() %}<a href="/github" class="{% if active == 'github' %}active{% endif %}">GitHub</a>{% endif %} | |
| {% if events_enabled() %}<a href="/events" class="{% if active == 'events' %}active{% endif %}">Events</a>{% endif %} | |
| <a href="/weeks" class="{% if active == 'weeks' %}active{% endif %}">Archive</a> | |
| <a href="/preferences" class="{% if active == 'preferences' %}active{% endif %}" title="Preferences">⚙</a> | |
| </div> | |
| </nav> | |
| <div class="container"> | |
| {% block content %}{% endblock %} | |
| </div> | |
| <div class="toast-container" id="toasts"></div> | |
| <script> | |
| if ('serviceWorker' in navigator) { | |
| navigator.serviceWorker.register('/sw.js'); | |
| } | |
| // Toast helper | |
| function showToast(msg, type) { | |
| var c = document.getElementById('toasts'); | |
| var t = document.createElement('div'); | |
| t.className = 'toast' + (type ? ' toast--' + type : ''); | |
| t.textContent = msg; | |
| c.appendChild(t); | |
| setTimeout(function() { t.remove(); }, 4000); | |
| } | |
| // Scroll to top on HTMX content swap (pagination) | |
| document.body.addEventListener('htmx:afterSwap', function(e) { | |
| if (e.detail.target.id === 'paper-results' || e.detail.target.id === 'gh-results' || e.detail.target.id === 'archive-results') { | |
| e.detail.target.scrollIntoView({behavior: 'smooth', block: 'start'}); | |
| } | |
| }); | |
| </script> | |
| </body> | |
| </html> | |