Skip to content

fix: figure-umschlossene Tabellen (wp-block-table) gehen nicht mehr verloren#22

Merged
oliverba81 merged 1 commit into
mainfrom
fix/figure-wrapped-tables
Jun 18, 2026
Merged

fix: figure-umschlossene Tabellen (wp-block-table) gehen nicht mehr verloren#22
oliverba81 merged 1 commit into
mainfrom
fix/figure-wrapped-tables

Conversation

@oliverba81

Copy link
Copy Markdown
Owner

Problem

Auf https://docs.greyhound-software.com/regelsystem/referenz-regeln wurden keine Regelnamen erkannt – die Markdown-Ausgabe enthielt keinen einzigen Regelnamen.

Ursache

Die Seite hat ein <main> (Container-Auswahl ok). Die komplette Regeltabelle (41 Zeilen, ein Icon-<img> je Zeile) steckt aber in genau einer <figure class="wp-block-table"> – ein WordPress-Block-Muster.

Der figure-Handler behandelte <figure> ausschließlich als Bild-Figur:

if tag == "figure":
    img = el.find("img")          # findet das erste Zeilen-Icon
    cap = el.find("figcaption")
    if img:
        self._img_block(img, out, ...)   # rendert NUR dieses eine Icon
    return                               # <- verwirft die ganze Tabelle

Es wurde also nur das erste Icon gerendert, die gesamte Tabelle mit allen Regelnamen verworfen.

Fix

<figure> nur dann als Bild-Block rendern, wenn sie ein <img> enthält und keinen Block-Inhalt (table/pre/blockquote/ul/ol/iframe). Andernfalls als Container rekursiv verarbeiten – dann greift u. a. der bestehende Tabellen-Handler.

Verifikation

  • Gegen die echte Seite: alle 41 Regeln werden jetzt extrahiert (Ausgabe ~1238 -> ~7043 Zeichen, 42 Ueberschriften, u. a. "Eingangsverarbeitung: BCC-E-Mails", "Microsoft 365", "Kontaktzuordnung" ...).
  • Regressionsfaelle: echte Bild-Figur -> weiterhin Bild-Block inkl. Caption; Tabellen-Figur ohne <img> -> Zellen erhalten; Tabellen-Figur mit Icon-<img> -> Regelnamen erhalten.
  • py -m py_compile ok.

Basiert auf v1.0.17 (inkl. des gemergten Content-Container-Fixes #21).

🤖 Generated with Claude Code

…oren

Der figure-Handler behandelte <figure> ausschließlich als Bild-Figur: Fand er
ein <img>, rendete er nur dieses und brach mit return ab; fand er keins,
verwarf er den Inhalt komplett. WordPress (und andere) verpacken jedoch auch
Tabellen (figure.wp-block-table), Code (wp-block-code) und Listen in <figure>.

Auf der Regel-Referenzseite (docs.greyhound-software.com/regelsystem/
referenz-regeln) steckt die gesamte Regeltabelle in genau einer
figure.wp-block-table mit Icon-<img> je Zeile. Der Handler rendete nur das
erste Icon und verwarf die komplette Tabelle → kein einziger Regelname in der
Ausgabe.

Fix: figure nur dann als Bild-Block rendern, wenn sie ein <img> enthält UND
keinen Block-Inhalt (table/pre/blockquote/ul/ol/iframe). Andernfalls als
Container rekursiv verarbeiten – dann greift u. a. der bestehende
Tabellen-Handler.

Verifiziert gegen die echte Seite: alle 41 Regeln werden jetzt extrahiert
(Ausgabe ~1238 → ~7043 Zeichen, 42 Überschriften). Regressionsfälle für echte
Bild-Figur (Bild-Block + Caption) sowie Tabellen-Figur ohne/mit img bestehen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@oliverba81 oliverba81 merged commit 4afd984 into main Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant