fix: PDF-Link mit #page=N-Hash — Browser-PDF-Viewer landet jetzt direkt auf der richtigen Seite
Browser-PDF-Reader (Chrome, Firefox) ignorieren das von /OpenAction-Eintrag im
PDF-Catalog (#88f9c7d) komplett. Der zuverlaessige Weg: URL-Hash-Anker '#page=N'.
Drei Stellen angepasst:
- redline_utils.build_pdf_href: haengt #page={seite} an die URL
- embeddings._build_zitat_url (rebind): analog
- v2/components/quote_card.html: bei alten DB-Eintraegen ohne Hash wird er
on-the-fly aus dem 'seite='-Query-Param erzeugt
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
88f9c7db6c
commit
273d45ea36
@ -714,7 +714,7 @@ def _chunk_pdf_url(chunk: dict) -> Optional[str]:
|
|||||||
# die URL bleibt bounded (sonst würden 500-Zeichen-Snippets in jeder
|
# die URL bleibt bounded (sonst würden 500-Zeichen-Snippets in jeder
|
||||||
# Zitat-URL stehen und das HTML-Report-JSON aufblähen).
|
# Zitat-URL stehen und das HTML-Report-JSON aufblähen).
|
||||||
q = urllib.parse.quote_plus(text[:200])
|
q = urllib.parse.quote_plus(text[:200])
|
||||||
return f"/api/wahlprogramm-cite?pid={prog_id}&seite={seite}&q={q}"
|
return f"/api/wahlprogramm-cite?pid={prog_id}&seite={seite}&q={q}#page={seite}"
|
||||||
|
|
||||||
if seite:
|
if seite:
|
||||||
return f"/static/referenzen/{pdf}#page={seite}"
|
return f"/static/referenzen/{pdf}#page={seite}"
|
||||||
|
|||||||
@ -85,4 +85,6 @@ def build_pdf_href(zitat: dict, bundesland: str = "") -> str:
|
|||||||
|
|
||||||
text = zitat.get("text", "")
|
text = zitat.get("text", "")
|
||||||
q = " ".join(text.split()[:5])
|
q = " ".join(text.split()[:5])
|
||||||
return f"/api/wahlprogramm-cite?pid={pid}&seite={seite}&q={quote_plus(q)}"
|
# #page=N als URL-Hash, damit der Browser-PDF-Viewer direkt zur Seite
|
||||||
|
# springt — OpenAction im PDF wird von Chrome/Firefox ignoriert.
|
||||||
|
return f"/api/wahlprogramm-cite?pid={pid}&seite={seite}&q={quote_plus(q)}#page={seite}"
|
||||||
|
|||||||
@ -27,7 +27,9 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{{ source }}
|
{{ source }}
|
||||||
{% if pdf_href %}
|
{% if pdf_href %}
|
||||||
· <a href="{{ pdf_href }}" target="_blank" rel="noopener" style="color:var(--ecg-blue);border-bottom:1px solid rgba(0,157,165,0.35);">PDF öffnen</a>
|
{# Falls pdf_href noch keinen #page=…-Anker hat, aus seite= im Query-String einen anhaengen — Browser-PDF-Viewer ignorieren PDF-OpenAction, der Hash-Anker funktioniert zuverlaessig. #}
|
||||||
|
{% set _href = pdf_href if '#page=' in pdf_href else (pdf_href ~ ('#page=' ~ (pdf_href.split('seite=')[1].split('&')[0] if 'seite=' in pdf_href else '1'))) %}
|
||||||
|
· <a href="{{ _href }}" target="_blank" rel="noopener" style="color:var(--ecg-blue);border-bottom:1px solid rgba(0,157,165,0.35);">PDF öffnen</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</cite>
|
</cite>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user