138 lines
5.5 KiB
HTML
138 lines
5.5 KiB
HTML
<!doctype html>
|
|
<html lang="de" data-bs-theme=dark>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>{% block title %}Spiel-Fandom{% endblock %} — {{ site_name or 'My Game Wiki' }}</title>
|
|
<meta name="description"
|
|
content="{% block description %}Fandom-Seite für {{ site_name or 'ein Spiel' }}{% endblock %}">
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com">
|
|
<link rel="stylesheet" href="/static/css/style.css">
|
|
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700;900&display=swap" rel="stylesheet">
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
|
|
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
|
<style>
|
|
|
|
</style>
|
|
|
|
{% block extra_head %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<div class="wrap">
|
|
<header class="topbar d-flex justify-content-between p-3">
|
|
<div class="brand">
|
|
<div class="logo">GF</div>
|
|
<div>
|
|
<h1>{{ site_name or 'Game Fandom' }}</h1>
|
|
<div style="font-size:0.85rem;color:var(--muted)">{% block tagline %}Community-geführtes Wiki &
|
|
Guides{% endblock %}</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="search m-2 d-flex align-items-end" role="search">
|
|
<div>
|
|
{% block login_logout %}
|
|
|
|
{% endblock %}
|
|
</div>
|
|
|
|
<form action="{{ url_for('search') }}" method="get">
|
|
<input name="q" placeholder="Suche Artikel, Charaktere, Items..." aria-label="Suche"
|
|
value="{{ request.args.get('q','') }}" class="form-control">
|
|
</form>
|
|
</div>
|
|
</header>
|
|
|
|
<nav style="margin-top:12px;color:var(--muted)">
|
|
<a href="{{ url_for('index') }}">Startseite</a>
|
|
</nav>
|
|
|
|
<div class="grid">
|
|
<main class="card border-0">
|
|
{% block hero %}
|
|
<div class="hero"
|
|
style="background-image: url('{{ url_for('static', filename='images/hero.jpg') }}');"></div>
|
|
{% endblock %}
|
|
|
|
<article>
|
|
<h2 class="title">{% block page_title %}Willkommen{% endblock %}</h2>
|
|
<div class="meta">{% block meta %}Letzte Aktualisierung: —{% endblock %}</div>
|
|
|
|
{% block content %}
|
|
<p>Hier kommt der Seiteninhalt.</p>
|
|
{% endblock %}
|
|
</article>
|
|
|
|
<section style="margin-top:18px">
|
|
<h3>Beliebte Artikel</h3>
|
|
<div class="card-row">
|
|
{% for item in popular_items|default([]) %}
|
|
<div class="mini-card">
|
|
<a href="{{ url_for('article', slug=item.slug) }}"><strong>{{ item.title }}</strong></a>
|
|
<div style="color:var(--muted);font-size:0.9rem">{{ item.short_desc }}</div>
|
|
</div>
|
|
{% else %}
|
|
<div class="mini-card">Keine Daten.</div>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
|
|
</main>
|
|
|
|
<aside class="sidebar">
|
|
<div style="margin-bottom:12px">
|
|
<h4>Neueste Diskussionen</h4>
|
|
<ul style="padding-left:14px;color:var(--muted);margin-top:8px">
|
|
{% for d in discussions|default([]) %}
|
|
<li><a href="{{ url_for('discussion', id=d.id) }}">{{ d.title }}</a></li>
|
|
{% else %}
|
|
<li>Keine Diskussionen.</li>
|
|
{% endfor %}
|
|
</ul>
|
|
</div>
|
|
|
|
<div style="margin-bottom:12px">
|
|
<h4>Kategorien</h4>
|
|
<div style="display:flex;flex-wrap:wrap;gap:8px;margin-top:8px">
|
|
{% for c in categories|default([]) %}
|
|
<a href="{{ url_for('category', slug=c.slug) }}" class="button">{{ c.name }}</a>
|
|
{% else %}
|
|
<div style="color:var(--muted)">Keine Kategorien.</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<h4>Über</h4>
|
|
<p style="color:var(--muted);font-size:0.95rem">{% block about_snippet %}Fandom-Community. Leitfäden,
|
|
Lore, Builds und mehr.{% endblock %}</p>
|
|
</div>
|
|
</aside>
|
|
</div>
|
|
|
|
<footer>
|
|
<div>© {{ current_year or 2025 }} {{ site_name or 'Game Fandom' }} — Erstellt mit ❤️</div>
|
|
<div style="margin-top:6px;color:var(--muted);font-size:0.85rem">Powered by Flask • <a href="#">Datenschutz</a>
|
|
</div>
|
|
</footer>
|
|
</div>
|
|
|
|
{% block scripts %}
|
|
<script>
|
|
// kleines Script: z.B. optionales keyboard shortcut für Suche (/)
|
|
document.addEventListener('keydown', function (e) {
|
|
if (e.key === "/" && document.activeElement.tagName !== 'INPUT' && document.activeElement.tagName !== 'TEXTAREA') {
|
|
const q = document.querySelector('.search input');
|
|
if (q) {
|
|
e.preventDefault();
|
|
q.focus();
|
|
}
|
|
}
|
|
});
|
|
</script>
|
|
{% endblock %}
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script>
|
|
</body>
|
|
</html>
|