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)