diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py
index 0a73fed..0695e89 100644
--- a/renderer/fifty_ohm_html_renderer.py
+++ b/renderer/fifty_ohm_html_renderer.py
@@ -1,4 +1,5 @@
from mistletoe import HtmlRenderer
+import textwrap
from renderer.comment import Comment
from renderer.tag import Tag
@@ -7,6 +8,10 @@ from renderer.underline import Underline
class FiftyOhmHtmlRenderer(HtmlRenderer):
+
+ margin_anchor_id = 0
+ margin_id = 0
+
def __init__(self):
super().__init__(Comment, Quote, Underline, Tag)
@@ -19,5 +24,57 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
def render_underline(self, token):
return f"{self.render_inner(token)}"
+ def render_thematic_break(self, token):
+ self.margin_anchor_id += 1
+ return f''
+
+ @staticmethod
+ def render_tag_helper(type, content, margin_id, margin_anchor_id):
+ """ This function is used to render the different types of tags. It is
+ used in the HtmlRenderer class and also in the test class """
+ return textwrap.dedent(f'''\
+
+ {content}
+
+
+
+ ''')
+
def render_tag(self, token):
- return f'{self.render_inner(token)}
'
\ No newline at end of file
+ if(token.tagtype == "latexonly"):
+ return ""
+ elif(token.tagtype == "webonly"):
+ return self.render_inner(token)
+
+ self.margin_id += 1
+
+ if(token.tagtype == "webmargin"):
+ type = "margin"
+ elif(token.tagtype == "webtip"):
+ type = "tipp"
+ elif(token.tagtype == "webindepth"):
+ type = "indepth"
+ else :
+ type = token.tagtype
+
+ return self.render_tag_helper(
+ type,
+ self.render_inner(token),
+ self.margin_id,
+ self.margin_anchor_id
+ )
+
\ No newline at end of file
diff --git a/test/test_tag.py b/test/test_tag.py
index 57b4bfe..7843bff 100644
--- a/test/test_tag.py
+++ b/test/test_tag.py
@@ -2,13 +2,38 @@ import mistletoe
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
-
-def test_tag_html() :
-
+def test_thematic_break_html() :
assertions = {
- "\nFoo\n" : '\n',
- "\nFoo\n" : '\n',
+ "---" : '\n',
+ "---\n---" : '\n\n',
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
+
+def test_tag_html() :
+
+ assertions = {
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",1,0)+'\n',
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("indepth","Foo
",1,0)+'\n',
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",1,0)+'\n',
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("tipp","Foo
",1,1)+'\n',
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("webtipp","Foo
",1,0)+'\n',
+ "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("indepth","Foo
",1,0)+'\n',
+ "\nFoo\n" : 'Foo
\n',
+ "\nFoo\n" : "",
+ }
+
+ for assertion in assertions:
+ assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
+
+def test_thematic_break_and_tag_html() :
+
+ assertions = {
+ "---\n\nFoo\n" : '\n'+FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",1,1)+'\n',
+ "---\n\nFoo\n\n\nFoo\n" : '\n'+FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",1,1)+'\n'+FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",2,1)+'\n',
+ "---\n\nFoo\n\n---\n\nFoo\n" : '\n'+FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",1,1)+'\n\n'+FiftyOhmHtmlRenderer.render_tag_helper("margin","Foo
",2,2)+'\n',
+ }
+
+ for assertion in assertions:
+ assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion]
\ No newline at end of file