diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py
index be1a7ec..f4677b1 100644
--- a/renderer/fifty_ohm_html_renderer.py
+++ b/renderer/fifty_ohm_html_renderer.py
@@ -2,6 +2,8 @@ import textwrap
from mistletoe import Document, HtmlRenderer
+from renderer.picture import Picture
+
from .comment import BlockComment
from .dash import Dash
from .halfwidth_spaces import HalfwidthSpaces
@@ -35,6 +37,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
NonbreakingSpacesDots,
References,
Question,
+ Picture
)
self.question_renderer = question_renderer
@@ -168,3 +171,15 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
# Filter out None values, so block tokens can return None to not be rendered.
inner = "\n".join(filter(lambda x: x is not None, [self.render(child) for child in token.children]))
return f"{inner}\n" if inner else ""
+
+ @staticmethod
+ def render_picture_helper(id, ref, text, number):
+ return f"""
+
+
+ Abbildung {number}: {text}
+
+ """
+
+ def render_picture(self, token) :
+ self.render_picture_helper(token.id, token.ref, token.text, token.number)
\ No newline at end of file
diff --git a/renderer/picture.py b/renderer/picture.py
new file mode 100644
index 0000000..acfe82c
--- /dev/null
+++ b/renderer/picture.py
@@ -0,0 +1,19 @@
+import re
+
+from mistletoe.span_token import SpanToken
+
+
+class Picture(SpanToken):
+ """
+ Span token for pictures.
+ Example: [picture:727:amplitude_periode_halbwellen:Positive und negative Halbwellen einer Sinusschwingung]
+ """
+
+ parse_inner = False
+ pattern = re.compile(r"\[picture:(\d+):(.+):(.+)\]")
+
+ def __init__(self, match_object):
+ self.id = match_object.group(1)
+ self.ref = match_object.group(2)
+ self.text = match_object.group(3)
+ self.number = "TODO"
\ No newline at end of file
diff --git a/test/test_picture.py b/test/test_picture.py
new file mode 100644
index 0000000..4829ceb
--- /dev/null
+++ b/test/test_picture.py
@@ -0,0 +1,27 @@
+import mistletoe
+import pytest
+
+from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
+from test.util import paragraph
+
+
+@pytest.mark.html
+def test_underline_html():
+ assertions = {
+ "[picture:123:abc:Text]": FiftyOhmHtmlRenderer.render_picture_helper("123", "abc", "Text", "TODO"),
+ }
+
+ for assertion in assertions:
+ assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
+
+
+#@pytest.mark.latex
+#def test_underline_latex():
+# assertions = {
+# "Text": "\n\\underline{Text}\n",
+# " Text Text ": "\n\\underline{ Text Text }\n",
+# " Text *Text* ": "\n\\underline{ Text \emph{Text} }\n",
+# }
+#
+# for assertion in assertions:
+# assert mistletoe.markdown(assertion, FiftyOhmLaTeXRenderer) == assertions[assertion]