PDF-Export: Inhaltsverzeichnis + Seitenumbrüche pro Abschnitt

- Seite 2: Dynamisches Inhaltsverzeichnis mit klickbaren Anker-Links
- Nur ausgewählte Bereiche erscheinen im Verzeichnis (CSS Counter)
- Jeder Abschnitt beginnt auf neuer Seite (page-break-before)
- Redundante Inline-Styles für Seitenumbrüche entfernt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
claude-dev
2026-04-12 01:15:23 +00:00
Ursprung 96463824a7
Commit 048c347616

Datei anzeigen

@@ -17,10 +17,16 @@ body { font-family: -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-se
.cover-meta div { margin-bottom: 3px; } .cover-meta div { margin-bottom: 3px; }
.cover-brand { font-size: 9pt; color: #0a1832; margin-top: 50px; letter-spacing: 1px; } .cover-brand { font-size: 9pt; color: #0a1832; margin-top: 50px; letter-spacing: 1px; }
/* Classification Banner */ /* Inhaltsverzeichnis */
.toc { page-break-after: always; padding-top: 40px; }
.toc h2 { font-size: 16pt; font-weight: 700; color: #0a1832; border-bottom: 2px solid #c8a851; padding-bottom: 6px; margin-bottom: 24px; }
.toc-list { list-style: none; padding: 0; margin: 0; counter-reset: toc-counter; }
.toc-list li { padding: 10px 0; border-bottom: 1px solid #e0e0e0; counter-increment: toc-counter; }
.toc-list li::before { content: counter(toc-counter) "."; display: inline-block; width: 24px; font-weight: 600; color: #0a1832; }
.toc-list a { color: #0a1832; text-decoration: none; font-size: 11pt; }
/* Sections */ /* Sections */
.section { margin-bottom: 20px; } .section { page-break-before: always; margin-bottom: 20px; }
.section h2 { font-size: 14pt; font-weight: 700; color: #0a1832; border-bottom: 2px solid #c8a851; padding-bottom: 4px; margin-bottom: 12px; } .section h2 { font-size: 14pt; font-weight: 700; color: #0a1832; border-bottom: 2px solid #c8a851; padding-bottom: 4px; margin-bottom: 12px; }
.section h3 { font-size: 11pt; font-weight: 600; color: #0a1832; margin: 14px 0 6px; } .section h3 { font-size: 11pt; font-weight: 600; color: #0a1832; margin: 14px 0 6px; }
@@ -77,10 +83,22 @@ tr:nth-child(even) { background: #f8f9fa; }
<div class="cover-brand">AegisSight Monitor</div> <div class="cover-brand">AegisSight Monitor</div>
</div> </div>
<!-- Inhaltsverzeichnis -->
<div class="toc">
<h2>Inhaltsverzeichnis</h2>
<ul class="toc-list">
{% if 'zusammenfassung' in sections %}<li><a href="#sec-zusammenfassung">Zusammenfassung</a></li>{% endif %}
{% if 'bericht' in sections %}<li><a href="#sec-bericht">{% if incident.type == "research" %}Recherchebericht{% else %}Lagebild{% endif %}</a></li>{% endif %}
{% if 'faktencheck' in sections and fact_checks %}<li><a href="#sec-faktencheck">Faktencheck</a></li>{% endif %}
{% if 'quellen' in sections and sources %}<li><a href="#sec-quellen">Quellenverzeichnis</a></li>{% endif %}
{% if 'timeline' in sections and timeline %}<li><a href="#sec-timeline">Ereignis-Timeline</a></li>{% endif %}
{% if 'timeline' in sections and articles %}<li><a href="#sec-artikel">Artikelverzeichnis</a></li>{% endif %}
</ul>
</div>
<!-- Zusammenfassung / Executive Summary --> <!-- Zusammenfassung -->
{% if 'zusammenfassung' in sections %} {% if 'zusammenfassung' in sections %}
<div class="section"> <div class="section" id="sec-zusammenfassung">
<h2>{{ zusammenfassung_title }}</h2> <h2>{{ zusammenfassung_title }}</h2>
<div class="exec-summary"> <div class="exec-summary">
{{ executive_summary | safe }} {{ executive_summary | safe }}
@@ -90,7 +108,7 @@ tr:nth-child(even) { background: #f8f9fa; }
<!-- Recherchebericht / Lagebild --> <!-- Recherchebericht / Lagebild -->
{% if 'bericht' in sections %} {% if 'bericht' in sections %}
<div class="section"> <div class="section" id="sec-bericht">
<h2>{% if incident.type == "research" %}Recherchebericht{% else %}Lagebild{% endif %}</h2> <h2>{% if incident.type == "research" %}Recherchebericht{% else %}Lagebild{% endif %}</h2>
{% if lagebild_timestamp %}<p style="font-size:9pt;color:#888;margin-bottom:10px;">Aktualisiert: {{ lagebild_timestamp }}</p>{% endif %} {% if lagebild_timestamp %}<p style="font-size:9pt;color:#888;margin-bottom:10px;">Aktualisiert: {{ lagebild_timestamp }}</p>{% endif %}
<div class="lagebild-content">{{ lagebild_html | safe }}</div> <div class="lagebild-content">{{ lagebild_html | safe }}</div>
@@ -99,7 +117,7 @@ tr:nth-child(even) { background: #f8f9fa; }
<!-- Faktencheck --> <!-- Faktencheck -->
{% if 'faktencheck' in sections and fact_checks %} {% if 'faktencheck' in sections and fact_checks %}
<div class="section"> <div class="section" id="sec-faktencheck">
<h2>Faktencheck</h2> <h2>Faktencheck</h2>
<table> <table>
<thead><tr><th>Behauptung</th><th>Status</th><th>Quellen</th></tr></thead> <thead><tr><th>Behauptung</th><th>Status</th><th>Quellen</th></tr></thead>
@@ -118,7 +136,7 @@ tr:nth-child(even) { background: #f8f9fa; }
<!-- Quellenverzeichnis --> <!-- Quellenverzeichnis -->
{% if 'quellen' in sections and sources %} {% if 'quellen' in sections and sources %}
<div class="section"> <div class="section" id="sec-quellen">
<h2>Quellenverzeichnis</h2> <h2>Quellenverzeichnis</h2>
{% if source_stats %} {% if source_stats %}
<h3>Quellenstatistik</h3> <h3>Quellenstatistik</h3>
@@ -145,7 +163,7 @@ tr:nth-child(even) { background: #f8f9fa; }
<!-- Timeline --> <!-- Timeline -->
{% if 'timeline' in sections and timeline %} {% if 'timeline' in sections and timeline %}
<div class="section" style="page-break-before:always;"> <div class="section" id="sec-timeline">
<h2>Ereignis-Timeline</h2> <h2>Ereignis-Timeline</h2>
{% for event in timeline %} {% for event in timeline %}
<div class="tl-item"> <div class="tl-item">
@@ -159,7 +177,7 @@ tr:nth-child(even) { background: #f8f9fa; }
<!-- Artikelverzeichnis --> <!-- Artikelverzeichnis -->
{% if 'timeline' in sections and articles %} {% if 'timeline' in sections and articles %}
<div class="section" style="page-break-before:always;"> <div class="section" id="sec-artikel">
<h2>Artikelverzeichnis ({{ articles | length }} Artikel)</h2> <h2>Artikelverzeichnis ({{ articles | length }} Artikel)</h2>
<table> <table>
<thead><tr><th>Headline</th><th>Quelle</th><th>Sprache</th><th>Datum</th></tr></thead> <thead><tr><th>Headline</th><th>Quelle</th><th>Sprache</th><th>Datum</th></tr></thead>