fix: Read-More nach Einleitung (Joomla-Standard), Meta-Zeile entfernt (macht Server)
This commit is contained in:
+8
-10
@@ -47,24 +47,22 @@ def build_prompt(topic: str, sources: list[str], rubric: str,
|
|||||||
'2. DACHZEILE: <div style="font-size:1.1rem;color:#555;margin-bottom:1.5rem;'
|
'2. DACHZEILE: <div style="font-size:1.1rem;color:#555;margin-bottom:1.5rem;'
|
||||||
'border-bottom:2px solid #e0e0e0;padding-bottom:1rem;">'
|
'border-bottom:2px solid #e0e0e0;padding-bottom:1rem;">'
|
||||||
'Zusammenfassung in 1-2 Sätzen</div>\n'
|
'Zusammenfassung in 1-2 Sätzen</div>\n'
|
||||||
'3. <p class="meta" style="font-size:0.85rem;color:#888;margin-bottom:2rem;">'
|
'3. Einleitungs-Absatz <p>\n'
|
||||||
'DATUM · Lesezeit: ca. N Minuten</p>\n'
|
'4. INFOBOX (PFLICHT bei Unternehmen/Produkt-News): '
|
||||||
'4. Einleitungs-Absatz <p>\n'
|
|
||||||
'5. INFOBOX (PFLICHT bei Unternehmen/Produkt-News): '
|
|
||||||
'<div style="background:#f0f4f8;border:1px solid #d0d8e0;border-radius:6px;'
|
'<div style="background:#f0f4f8;border:1px solid #d0d8e0;border-radius:6px;'
|
||||||
'padding:1.2rem 1.5rem;margin:2rem 0;">'
|
'padding:1.2rem 1.5rem;margin:2rem 0;">'
|
||||||
'<h3 style="margin-top:0;color:#20228A;font-family:Arial,sans-serif;font-size:1.15rem;">'
|
'<h3 style="margin-top:0;color:#20228A;font-family:Arial,sans-serif;font-size:1.15rem;">'
|
||||||
'NAME — Fakten</h3><table style="width:100%;border-collapse:collapse;">'
|
'NAME — Fakten</h3><table style="width:100%;border-collapse:collapse;">'
|
||||||
'<tr><td style="padding:0.3rem 0.5rem;font-weight:bold;color:#444;width:160px;">'
|
'<tr><td style="padding:0.3rem 0.5rem;font-weight:bold;color:#444;width:160px;">'
|
||||||
'Label</td><td style="padding:0.3rem 0.5rem;">Wert</td></tr></table></div>\n'
|
'Label</td><td style="padding:0.3rem 0.5rem;">Wert</td></tr></table></div>\n'
|
||||||
'6. ALLE Inhalts-Abschnitte (<h2> + <p>)\n'
|
'5. ALLE Inhalts-Abschnitte (<h2> + <p>)\n'
|
||||||
'7. <hr id="system-readmore" /> <-- NACH allen Inhalten, VOR Quellen!\n'
|
'6. <hr id="system-readmore" /> <-- NACH allen Inhalten, VOR Quellen!\n'
|
||||||
'8. Quellen-Überschrift: <span style="font-size:1.17em;font-weight:bold;'
|
'7. Quellen-Überschrift: <span style="font-size:1.17em;font-weight:bold;'
|
||||||
'display:block;margin:1em 0;"><strong>Quellen</strong></span>\n'
|
'display:block;margin:1em 0;"><strong>Quellen</strong></span>\n'
|
||||||
'9. JEDE Quelle als: <li><a href="URL" target="_blank" rel="noopener" '
|
'8. JEDE Quelle als: <li><a href="URL" target="_blank" rel="noopener" '
|
||||||
'style="color:#0075FF;">Name</a> — Beschreibung</li>\n'
|
'style="color:#0075FF;">Name</a> — Beschreibung</li>\n'
|
||||||
'10. <p class="qc"><!-- QC: Quelle1=AAA|URL1, Quelle2=AA|URL2 --></p>\n'
|
'9. <p class="qc"><!-- QC: Quelle1=AAA|URL1, Quelle2=AA|URL2 --></p>\n'
|
||||||
'11. <p style="margin-top:2.5rem;padding-top:1rem;border-top:1px solid #ddd;'
|
'10. <p style="margin-top:2.5rem;padding-top:1rem;border-top:1px solid #ddd;'
|
||||||
'font-size:0.9rem;color:#777;"><em>Recherchestand: DATUM. '
|
'font-size:0.9rem;color:#777;"><em>Recherchestand: DATUM. '
|
||||||
'Basierend auf QUELLEN.</em></p>\n'
|
'Basierend auf QUELLEN.</em></p>\n'
|
||||||
'\n'
|
'\n'
|
||||||
|
|||||||
@@ -12,8 +12,6 @@
|
|||||||
|
|
||||||
<div style="font-size:1.1rem;color:#555;margin-bottom:1.5rem;border-bottom:2px solid #e0e0e0;padding-bottom:1rem;">Chivalry (BGG 472579) ist das neue Kennerspiel von Erfolgsdesigner Dávid Turczi. Das 2026 erscheinende Strategiespiel für 1–4 Personen verbindet Area Majority, Deck-Building und Worker Placement im mythologischen Camelot-Universum.</div>
|
<div style="font-size:1.1rem;color:#555;margin-bottom:1.5rem;border-bottom:2px solid #e0e0e0;padding-bottom:1rem;">Chivalry (BGG 472579) ist das neue Kennerspiel von Erfolgsdesigner Dávid Turczi. Das 2026 erscheinende Strategiespiel für 1–4 Personen verbindet Area Majority, Deck-Building und Worker Placement im mythologischen Camelot-Universum.</div>
|
||||||
|
|
||||||
<p class="meta" style="font-size:0.85rem;color:#888;margin-bottom:2rem;">23. Juni 2026 · Lesezeit: ca. 5 Minuten</p>
|
|
||||||
|
|
||||||
<p>Dávid Turczi gehört zu den produktivsten und gefragtesten Brettspiel-Designern der letzten Jahre. Nach Hits wie <em>Anachrony</em>, <em>Imperium</em> und <em>Tiletum</em> wendet er sich nun dem vielleicht klassischsten aller Fantasy-Settings zu: der Tafelrunde von König Artus. <strong>Chivalry</strong> (engl. für „Ritterlichkeit") erscheint 2026 beim deutschen Verlag <strong>dlp games</strong> (Reiner Stockhausen) in Kooperation mit <strong>Game's Up</strong> (Ralph Bienert, Ingolstadt) — ein Kennerspiel, das taktische Tiefe mit thematischer Dichte verbindet.</p>
|
<p>Dávid Turczi gehört zu den produktivsten und gefragtesten Brettspiel-Designern der letzten Jahre. Nach Hits wie <em>Anachrony</em>, <em>Imperium</em> und <em>Tiletum</em> wendet er sich nun dem vielleicht klassischsten aller Fantasy-Settings zu: der Tafelrunde von König Artus. <strong>Chivalry</strong> (engl. für „Ritterlichkeit") erscheint 2026 beim deutschen Verlag <strong>dlp games</strong> (Reiner Stockhausen) in Kooperation mit <strong>Game's Up</strong> (Ralph Bienert, Ingolstadt) — ein Kennerspiel, das taktische Tiefe mit thematischer Dichte verbindet.</p>
|
||||||
|
|
||||||
<div style="background:#f0f4f8;border:1px solid #d0d8e0;border-radius:6px;padding:1.2rem 1.5rem;margin:2rem 0;">
|
<div style="background:#f0f4f8;border:1px solid #d0d8e0;border-radius:6px;padding:1.2rem 1.5rem;margin:2rem 0;">
|
||||||
@@ -35,6 +33,8 @@
|
|||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<hr id="system-readmore" />
|
||||||
|
|
||||||
<h2>Von Merlin und Morgana: Das Spielprinzip</h2>
|
<h2>Von Merlin und Morgana: Das Spielprinzip</h2>
|
||||||
|
|
||||||
<p>Chivalry entführt die Spieler an den Hof von König Artus. Jeder übernimmt die Rolle eines ehrgeizigen Ritters, der mit seinem Gefolge durch die Lande zieht, um Ruhm, Einfluss und Ehre zu erlangen. Jede Runde repräsentiert einen vollständigen Tag im Leben der Ritter — von der Morgendämmerung bis zum abendlichen Festmahl in Camelot.</p>
|
<p>Chivalry entführt die Spieler an den Hof von König Artus. Jeder übernimmt die Rolle eines ehrgeizigen Ritters, der mit seinem Gefolge durch die Lande zieht, um Ruhm, Einfluss und Ehre zu erlangen. Jede Runde repräsentiert einen vollständigen Tag im Leben der Ritter — von der Morgendämmerung bis zum abendlichen Festmahl in Camelot.</p>
|
||||||
@@ -67,8 +67,6 @@
|
|||||||
|
|
||||||
<p>Für Fans von Turczis bisherigem Werk und Liebhaber des Artus-Stoffes lohnt sich ein genauer Blick auf Chivalry. Die Mechaniken-Kombination aus Area Majority, Deck-Building und variablem Worker Placement verspricht ein eigenständiges Spielerlebnis, das sich von anderen Camelot-Titeln wie <em>Tainted Grail</em> oder <em>Shadows over Camelot</em> abhebt. Sobald erste Preview-Exemplare die Runde machen, werden wir berichten.</p>
|
<p>Für Fans von Turczis bisherigem Werk und Liebhaber des Artus-Stoffes lohnt sich ein genauer Blick auf Chivalry. Die Mechaniken-Kombination aus Area Majority, Deck-Building und variablem Worker Placement verspricht ein eigenständiges Spielerlebnis, das sich von anderen Camelot-Titeln wie <em>Tainted Grail</em> oder <em>Shadows over Camelot</em> abhebt. Sobald erste Preview-Exemplare die Runde machen, werden wir berichten.</p>
|
||||||
|
|
||||||
<hr id="system-readmore" />
|
|
||||||
|
|
||||||
<span style="font-size:1.17em;font-weight:bold;display:block;margin:1em 0;"><strong>Quellen</strong></span>
|
<span style="font-size:1.17em;font-weight:bold;display:block;margin:1em 0;"><strong>Quellen</strong></span>
|
||||||
|
|
||||||
<ol>
|
<ol>
|
||||||
|
|||||||
+9
-7
@@ -72,7 +72,7 @@ fi
|
|||||||
|
|
||||||
# ── CHECK 6: No meta-line in body (title, date, reading time) ───────
|
# ── CHECK 6: No meta-line in body (title, date, reading time) ───────
|
||||||
if echo "$BODY" | grep -qP '<p[^>]*>.*\d{1,2}\.\s+\w+\s+\d{4}.*·.*Lesezeit'; then
|
if echo "$BODY" | grep -qP '<p[^>]*>.*\d{1,2}\.\s+\w+\s+\d{4}.*·.*Lesezeit'; then
|
||||||
warn "Meta-Zeile möglicherweise im Body (Datum · Rubrik · Lesezeit)"
|
fail "Meta-Zeile im Body (Datum · Lesezeit) — macht Article-Server selbst!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── CHECK 7: Sources heading uses span-strong, not h2 ───────────────
|
# ── CHECK 7: Sources heading uses span-strong, not h2 ───────────────
|
||||||
@@ -155,15 +155,17 @@ else
|
|||||||
fail "Infobox fehlt (Fakten-Tabelle mit #f0f4f8 Hintergrund)"
|
fail "Infobox fehlt (Fakten-Tabelle mit #f0f4f8 Hintergrund)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── CHECK 16: Read-More NACH allen h2 (Position prüfen) ──────────────
|
# ── CHECK 16: Read-More NACH Einleitung, VOR erstem h2 (Joomla-Standard) ──
|
||||||
|
# Der Text VOR Read-More ist der Intro-Text für die Artikel-Übersicht.
|
||||||
|
# Alle h2-Abschnitte müssen HINTER dem Read-More stehen.
|
||||||
READMORE_LINE=$(grep -n 'system-readmore' "$FILE" | head -1 | cut -d: -f1)
|
READMORE_LINE=$(grep -n 'system-readmore' "$FILE" | head -1 | cut -d: -f1)
|
||||||
LAST_H2_LINE=$(grep -n '<h2>' "$FILE" | tail -1 | cut -d: -f1 || echo "0")
|
FIRST_H2_LINE=$(grep -n '<h2>' "$FILE" | head -1 | cut -d: -f1 || echo "99999")
|
||||||
if [ "$LAST_H2_LINE" = "0" ]; then
|
if [ "$FIRST_H2_LINE" = "99999" ]; then
|
||||||
warn "Keine <h2> im Artikel — Read-More-Position nicht prüfbar"
|
warn "Keine <h2> im Artikel — Read-More-Position nicht prüfbar"
|
||||||
elif [ "$READMORE_LINE" -gt "$LAST_H2_LINE" ]; then
|
elif [ "$READMORE_LINE" -lt "$FIRST_H2_LINE" ]; then
|
||||||
ok "Read-More NACH allen h2 (Zeile $READMORE_LINE > $LAST_H2_LINE)"
|
ok "Read-More VOR erstem h2 — korrekt (Zeile $READMORE_LINE < $FIRST_H2_LINE)"
|
||||||
else
|
else
|
||||||
fail "Read-More VOR letztem h2 (Zeile $READMORE_LINE < $LAST_H2_LINE). Joomla schneidet Inhalte ab!"
|
fail "Read-More NACH erstem h2 (Zeile $READMORE_LINE > $FIRST_H2_LINE). Joomla-Intro zu lang — h2-Inhalte verschwinden aus Übersicht!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# ── CHECK 17: JEDE Quelle im Quellen-Block hat <a href> ─────────────
|
# ── CHECK 17: JEDE Quelle im Quellen-Block hat <a href> ─────────────
|
||||||
|
|||||||
Reference in New Issue
Block a user