diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py
index fdcf7a9..a591496 100644
--- a/renderer/fifty_ohm_html_renderer.py
+++ b/renderer/fifty_ohm_html_renderer.py
@@ -4,11 +4,12 @@ from renderer.comment import Comment
from renderer.quote import Quote
from renderer.halfwidth_spaces import HalfwidthSpaces
from renderer.nonbreaking_spaces import NonbreakingSpaces, NonbreakingSpacesDots
+from renderer.references import References
class FiftyOhmHtmlRenderer(HtmlRenderer):
def __init__(self):
- super().__init__(Comment, Quote, HalfwidthSpaces, NonbreakingSpaces, NonbreakingSpacesDots)
+ super().__init__(Comment, Quote, HalfwidthSpaces, NonbreakingSpaces, NonbreakingSpacesDots, References)
def render_comment():
return None
@@ -26,4 +27,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
return f"{token.first} {token.second}"
def render_nonbreaking_spaces_dots(self, token):
- return f" {token.first} "
\ No newline at end of file
+ return f" {token.first} "
+
+ def render_references(self, token, dest_id=0, chap_url="DeineMama.html"):
+ return f"{dest_id}"
\ No newline at end of file
diff --git a/renderer/references.py b/renderer/references.py
new file mode 100644
index 0000000..e8b5f18
--- /dev/null
+++ b/renderer/references.py
@@ -0,0 +1,15 @@
+import re
+
+from mistletoe.span_token import SpanToken
+
+
+class References(SpanToken):
+ """
+ Resolve references for html
+ Identifies "[ref:$]"
+ """
+ pattern = re.compile(r"\[ref\:(\S+)\]")
+
+ def __init__(self, match_object):
+ self.first = match_object.group(1)
+
diff --git a/test/test_references.py b/test/test_references.py
new file mode 100644
index 0000000..acd35e6
--- /dev/null
+++ b/test/test_references.py
@@ -0,0 +1,16 @@
+import mistletoe
+
+from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
+from test.util import paragraph
+
+def test_references_html():
+ # Right now this tests only the default values.
+ # The correct behavior can be tested when the information is added to the renderer class
+ assertions = {
+ "[ref:e_oszilloskop_bildschirmfoto_sinus]" : "0",
+ "[ref:n_rst_r]" : "0",
+ "[ref:Uuuuuh]" : "0" # Test the default parameters
+ }
+
+ for key, value in assertions.items():
+ assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)