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