fix: PDF-Highlight strippt führende Seitenzahl + Topbar noch kompakter
- render_highlighted_page: führende Seitenzahl-Tokens ('44 Gute Bildung …')
vor search_for entfernen — LLMs ziehen den Header oft ins Zitat mit, was
PyMuPDFs Volltext-Match scheitern lässt
- v2-Topbar: padding 4px -> 2px, line-height 1.2, min-height entfernt
(auto-size, nur so hoch wie noetig)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
50c026e3a0
commit
489a1915f8
@ -777,9 +777,14 @@ def render_highlighted_page(programm_id: str, seite: int, query: str) -> Optiona
|
||||
rects = []
|
||||
if needle:
|
||||
clean = needle.replace("\u00ad", "")
|
||||
# LLMs ziehen h\u00e4ufig die Seitenzahl-Header (\u201e44 Gute Bildung \u2026")
|
||||
# mit ins Zitat. Wenn die ersten Tokens reine Ziffern sind,
|
||||
# strippen wir sie f\u00fcr die Suche \u2014 sonst matched search_for nicht.
|
||||
import re as _re
|
||||
clean = _re.sub(r"^\s*\d+\s+", "", clean).strip()
|
||||
words = clean.split()
|
||||
anchor = " ".join(words[:5]) if len(words) >= 5 else clean
|
||||
# Versuch 1: angegebene Seite, Volltext
|
||||
# Versuch 1: angegebene Seite, Volltext (gestrippt)
|
||||
rects = src[target_page_idx].search_for(clean)
|
||||
# Versuch 2: angegebene Seite, 5-Wort-Anker
|
||||
if not rects:
|
||||
|
||||
@ -66,15 +66,21 @@ body.v2 :focus-visible {
|
||||
grid-area: topbar;
|
||||
background: var(--paper);
|
||||
border-bottom: 1px solid var(--hairline);
|
||||
padding: 4px 24px;
|
||||
min-height: 32px;
|
||||
padding: 2px 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--space-4);
|
||||
font-family: var(--font-mono);
|
||||
font-size: 11px;
|
||||
line-height: 1.2;
|
||||
color: var(--ecg-dark);
|
||||
}
|
||||
.v2-topbar > *,
|
||||
.v2-topbar button,
|
||||
.v2-topbar select {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.v2-topbar-spacer {
|
||||
flex: 1;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user