From e9120c84ef4a2e772ebb9ffc27318cf984cb87e8 Mon Sep 17 00:00:00 2001 From: dschlueter Date: Tue, 6 Oct 2026 00:00:58 +0200 Subject: [PATCH] fix: Inline-SVG in HTML-Tabellen als ausgeben (QA2-05) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Eingebettete SVGs in komplexen Tabellen wurden als Markdown-Bild ![…](…) in den HTML-Block geschrieben und daher nicht angezeigt. Co-Authored-By: Claude Opus 5.5 --- epub2md/html_converter.py | 2 ++ tests/test_qa_regressions.py | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/epub2md/html_converter.py b/epub2md/html_converter.py index d7210e5..2a2717b 100644 --- a/epub2md/html_converter.py +++ b/epub2md/html_converter.py @@ -1103,6 +1103,8 @@ class Renderer: self.formulas.append({"source": self._source(el), "chapter": self.file, "origin": "svg", "representation": "svg", "display": "false"}) self.diag.warn("formula-svg", "Formel liegt nur als SVG vor; als Bild referenziert.", self._source(el), self.file) + if self.in_table_html: # Markdown is not rendered inside an HTML block + return [("r", f'{html.escape(alt)}')] return [("r", f"![{self._alt(alt)}]({url_path(rel_link(self.file, mf.output))})")] def math(self, el: Any, display: bool) -> list[Piece]: diff --git a/tests/test_qa_regressions.py b/tests/test_qa_regressions.py index 12d82aa..efe605a 100644 --- a/tests/test_qa_regressions.py +++ b/tests/test_qa_regressions.py @@ -86,3 +86,15 @@ def test_end_of_book_reference_inside_html_table_is_html(convert): table = _html_table(run.chapter("001")) assert "](" not in table, table assert '1' in table + + +def test_inline_svg_inside_html_table_is_html_img(convert): + """QA2-05: inline SVG in a complex table was written as Markdown image inside the HTML block.""" + body = ('

T

Kopf
A' + '' + "
") + run = convert(Book(docs=[Doc("c.xhtml", body)])) + table = _html_table(run.chapter("001")) + assert "![" not in table, table + assert re.search(r'Kreis', table), table + assert run.report["output_link_check"]["broken_count"] == 0