diff --git a/renderer/fifty_ohm_latex_renderer.py b/renderer/fifty_ohm_latex_renderer.py index 508983e..86989ca 100644 --- a/renderer/fifty_ohm_latex_renderer.py +++ b/renderer/fifty_ohm_latex_renderer.py @@ -3,6 +3,7 @@ from mistletoe.latex_renderer import LaTeXRenderer from .comment import BlockComment from .dash import Dash from .halfwidth_spaces import HalfwidthSpaces +from .index import Index from .nonbreaking_spaces import NonbreakingSpaces, NonbreakingSpacesDots from .photo import Photo from .picture import Picture @@ -32,6 +33,7 @@ class FiftyOhmLaTeXRenderer(LaTeXRenderer): TableRow, TableHeader, TableCell, + Index, ) self.question_renderer = question_renderer @@ -148,3 +150,9 @@ class FiftyOhmLaTeXRenderer(LaTeXRenderer): def render_table_cell(self, token: TableCell): return self.render_inner(token) + + def render_index(self, token): + if token.second: + return f"\\index{{{token.first}!{token.second}}}" + else: + return f"\\index{{{token.first}}}" diff --git a/test/test_index.py b/test/test_index.py index 446f076..7adafef 100644 --- a/test/test_index.py +++ b/test/test_index.py @@ -2,6 +2,7 @@ import mistletoe import pytest from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer +from renderer.fifty_ohm_latex_renderer import FiftyOhmLaTeXRenderer from test.util import paragraph @@ -17,3 +18,17 @@ def test_index_html(): for key, value in assertions.items(): assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value) + + +@pytest.mark.latex +def test_index_latex(): + + assertions = { + "Im Betrieb werden Yagi-Antennen [index:Antenne:Yagi-Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen\\index{Antenne!Yagi-Antenne} oft gedreht", + "Im Betrieb werden Yagi-Antennen[index:Antenne:Yagi-Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen\\index{Antenne!Yagi-Antenne} oft gedreht", + "Im Betrieb werden Yagi-Antennen [index:Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen\\index{Antenne} oft gedreht", + "Im Betrieb werden Yagi-Antennen[index:Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen\\index{Antenne} oft gedreht", + } + + for key, value in assertions.items(): + assert mistletoe.markdown(key, FiftyOhmLaTeXRenderer) == "\n" + value + "\n"