diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py
index db8a67d..231b882 100644
--- a/renderer/fifty_ohm_html_renderer.py
+++ b/renderer/fifty_ohm_html_renderer.py
@@ -1,8 +1,8 @@
import textwrap
-from mistletoe import HtmlRenderer
+from mistletoe import Document, HtmlRenderer
-from .comment import BlockComment, SpanComment
+from .comment import BlockComment
from .dash import Dash
from .halfwidth_spaces import HalfwidthSpaces
from .morse import Morse
@@ -24,7 +24,6 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
super().__init__(
Dash,
BlockComment,
- SpanComment,
Quote,
Unit,
Underline,
@@ -40,10 +39,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
return " – "
def render_block_comment(self, token):
- return ""
-
- def render_span_comment(self, token):
- return ""
+ return None
def render_quote(self, token):
return f"„{self.render_inner(token)}“"
@@ -158,5 +154,11 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
lookup = {"": "", " ": " "}
return f"{lookup[token.first]}{token.second}{lookup[token.third]}"
- def render_references(self, token):
+ def render_references(self, token: References):
return f'{self.ref_id}'
+
+ def render_document(self, token: Document) -> str:
+ self.footnotes.update(token.footnotes)
+ # 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 "{}\n".format(inner) if inner else ""
diff --git a/renderer/fifty_ohm_latex_renderer.py b/renderer/fifty_ohm_latex_renderer.py
index 1661884..e67fb65 100644
--- a/renderer/fifty_ohm_latex_renderer.py
+++ b/renderer/fifty_ohm_latex_renderer.py
@@ -30,7 +30,7 @@ class FiftyOhmLaTeXRenderer(LaTeXRenderer):
return " -- "
def render_block_comment(self, token):
- return "" # TODO propagate comments to the LaTeX document
+ return f"% {token.content}"
def render_quote(self, token):
return rf"\enquote{{{self.render_inner(token)}}}"
diff --git a/test/test_comment.py b/test/test_comment.py
index 07d46a4..464035c 100644
--- a/test/test_comment.py
+++ b/test/test_comment.py
@@ -23,10 +23,10 @@ def test_comment_html():
@pytest.mark.latex
def test_comment_latex():
assertions = {
- "%Comment\nBar": "\nBar\n",
- # TODO: This test is not working as expected. The comment should be removed
- # "%Comment\n" : "a",
- "Foo\n%Comment\nBar": "\nFoo\nBar\n",
+ "%Comment\nBar": "% Comment\nBar\n",
+ "%Comment\n": "% Comment",
+ "Foo 100 % Bar": "\nFoo 100 \% Bar\n",
+ "Foo\n%Comment\nBar": "\nFoo\n% Comment\nBar\n",
}
for assertion in assertions: