Researcher / src /web /templates /base.html
amarck's picture
Add HF Spaces support, preference seeding, archive search, tests
430d0f8
<!DOCTYPE html>
<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">&#9881;</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>