From 048c3476161267b549db6831da2034a2c8b450e3 Mon Sep 17 00:00:00 2001 From: claude-dev Date: Sun, 12 Apr 2026 01:15:23 +0000 Subject: [PATCH] =?UTF-8?q?PDF-Export:=20Inhaltsverzeichnis=20+=20Seitenum?= =?UTF-8?q?br=C3=BCche=20pro=20Abschnitt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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) --- src/report_templates/report.html | 36 ++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/src/report_templates/report.html b/src/report_templates/report.html index bbd936a..e930584 100644 --- a/src/report_templates/report.html +++ b/src/report_templates/report.html @@ -17,10 +17,16 @@ body { font-family: -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-se .cover-meta div { margin-bottom: 3px; } .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 */ -.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 h3 { font-size: 11pt; font-weight: 600; color: #0a1832; margin: 14px 0 6px; } @@ -77,10 +83,22 @@ tr:nth-child(even) { background: #f8f9fa; }
AegisSight Monitor
+ +
+

Inhaltsverzeichnis

+ +
- + {% if 'zusammenfassung' in sections %} -
+

{{ zusammenfassung_title }}

{{ executive_summary | safe }} @@ -90,7 +108,7 @@ tr:nth-child(even) { background: #f8f9fa; } {% if 'bericht' in sections %} -
+

{% if incident.type == "research" %}Recherchebericht{% else %}Lagebild{% endif %}

{% if lagebild_timestamp %}

Aktualisiert: {{ lagebild_timestamp }}

{% endif %}
{{ lagebild_html | safe }}
@@ -99,7 +117,7 @@ tr:nth-child(even) { background: #f8f9fa; } {% if 'faktencheck' in sections and fact_checks %} -
+

Faktencheck

@@ -118,7 +136,7 @@ tr:nth-child(even) { background: #f8f9fa; } {% if 'quellen' in sections and sources %} -
+

Quellenverzeichnis

{% if source_stats %}

Quellenstatistik

@@ -145,7 +163,7 @@ tr:nth-child(even) { background: #f8f9fa; } {% if 'timeline' in sections and timeline %} -
+

Ereignis-Timeline

{% for event in timeline %}
@@ -159,7 +177,7 @@ tr:nth-child(even) { background: #f8f9fa; } {% if 'timeline' in sections and articles %} -
+

Artikelverzeichnis ({{ articles | length }} Artikel)

BehauptungStatusQuellen
HeadlineQuelleSpracheDatum