fix: Word-Text in Spielerklärung + Fazit splitten
- Erkennt 'Fazit'-Überschrift als Trenner im Word-Dokument - Spielerklärung erscheint vor dem Pagebreak - Fazit erscheint nach dem 'Meine Meinung'-Banner - Verlag-Fallback aus Formular wenn Excel fehlt - Pro/Kontra nach dem Fazit
This commit is contained in:
+30
-8
@@ -2177,25 +2177,47 @@ document.getElementById('publishBtn').addEventListener('click',function(){{submi
|
|||||||
tags_str = ", ".join(tags) if tags else f"{spielname}, Brettspiel, Review, Bewertung, {autor_name}"
|
tags_str = ", ".join(tags) if tags else f"{spielname}, Brettspiel, Review, Bewertung, {autor_name}"
|
||||||
title_full = f"{spielname} {zusatz}".strip()
|
title_full = f"{spielname} {zusatz}".strip()
|
||||||
|
|
||||||
# Artikeltext aus Word (zwischen Infobox und Fazit)
|
# Artikeltext aus Word in Spielerklärung + Fazit splitten
|
||||||
artikel_html = ""
|
erklarung_html = ""
|
||||||
|
fazit_html = ""
|
||||||
if word_text:
|
if word_text:
|
||||||
if "<" not in word_text[:100]:
|
# Suche "Fazit"-Überschrift als Trenner
|
||||||
artikel_html = f"<p>{word_text.replace(chr(10)+chr(10), '</p><p>')}</p>"
|
import re as re2
|
||||||
|
split_marker = re2.search(r'(?i)^Fazit\s*$|^{2,}Fazit\s*$', word_text, re2.MULTILINE)
|
||||||
|
if split_marker:
|
||||||
|
erkl = word_text[:split_marker.start()].strip()
|
||||||
|
faz = word_text[split_marker.end():].strip()
|
||||||
|
elif "Fazit" in word_text:
|
||||||
|
parts = word_text.split("Fazit", 1)
|
||||||
|
erkl = parts[0].strip()
|
||||||
|
faz = parts[1].strip()
|
||||||
else:
|
else:
|
||||||
artikel_html = word_text
|
erkl = word_text
|
||||||
|
faz = ""
|
||||||
|
# In HTML umwandeln falls Plaintext
|
||||||
|
if erkl and "<" not in erkl[:100]:
|
||||||
|
erkl = f"<p>{erkl.replace(chr(10)+chr(10), '</p><p>')}</p>"
|
||||||
|
if faz and "<" not in faz[:100]:
|
||||||
|
faz = f"<p>{faz.replace(chr(10)+chr(10), '</p><p>')}</p>"
|
||||||
|
erklarung_html = erkl
|
||||||
|
fazit_html = faz
|
||||||
|
|
||||||
body = f"""<p>{spielname} — {komplex or 'Brettspiel'} von {autoren or verlag or 'unbekannt'}</p>
|
# Verlag/Autor Fallback
|
||||||
|
display_autor = autoren or verlag or meta.get("verlag", "").strip() or "unbekannt"
|
||||||
|
|
||||||
|
body = f"""<p>{spielname} — {komplex or 'Brettspiel'} von {display_autor}</p>
|
||||||
<hr id="system-readmore">
|
<hr id="system-readmore">
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p><img style="margin:10px auto;display:block;" src="{base_img}/wertung/info.png" alt="Fakten zum Spiel"></p>
|
<p><img style="margin:10px auto;display:block;" src="{base_img}/wertung/info.png" alt="Fakten zum Spiel"></p>
|
||||||
{fakten_html}
|
{fakten_html}
|
||||||
{disc_html}
|
{disc_html}
|
||||||
{mech_html}
|
{mech_html}
|
||||||
{artikel_html}
|
{erklarung_html}
|
||||||
|
<hr class="system-pagebreak" title="Fazit + Wertung + Bilder vom Spiel">
|
||||||
|
<h2><img src="images/banners/redaktion/{autor_banner}" alt="Meine Meinung"></h2>
|
||||||
|
{fazit_html}
|
||||||
{pro_html}
|
{pro_html}
|
||||||
{kontra_html}
|
{kontra_html}
|
||||||
<h2><img src="images/banners/redaktion/{autor_banner}" alt="Meine Meinung"></h2>
|
|
||||||
{wertung_html}
|
{wertung_html}
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p style="text-align:center;">{{{{module Discord-Hinweis Tests}}}}</p>
|
<p style="text-align:center;">{{{{module Discord-Hinweis Tests}}}}</p>
|
||||||
|
|||||||
Reference in New Issue
Block a user