From 4ee801b41e4b5685198a65019a0d3a9218ddf1a1 Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sat, 7 Dec 2024 15:04:16 +0100 Subject: [PATCH 1/3] feature: add util function for testing --- renderer/fifty_ohm_html_renderer.py | 5 ++++- test/util.py | 2 ++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 test/util.py diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py index 3632908..9400552 100644 --- a/renderer/fifty_ohm_html_renderer.py +++ b/renderer/fifty_ohm_html_renderer.py @@ -1,12 +1,15 @@ from mistletoe import HtmlRenderer from renderer.comment import Comment +from renderer.quote import Quote class FiftyOhmHtmlRenderer(HtmlRenderer): def __init__(self): - super().__init__(Comment) + super().__init__(Comment, Quote) def render_comment(): return None + def render_quote(self, token): + return f"„{self.render_inner(token)}“" \ No newline at end of file diff --git a/test/util.py b/test/util.py new file mode 100644 index 0000000..f30aa79 --- /dev/null +++ b/test/util.py @@ -0,0 +1,2 @@ +def paragraph(text) : + return f'

{text}

\n' \ No newline at end of file From dbe548c9e30282a160114127eb964c1a85e9ae36 Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sat, 7 Dec 2024 15:04:43 +0100 Subject: [PATCH 2/3] feature: add quote renderer --- renderer/quote.py | 11 +++++++++++ test/__init__.py | 0 test/test_quote.py | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 renderer/quote.py create mode 100644 test/__init__.py create mode 100644 test/test_quote.py diff --git a/renderer/quote.py b/renderer/quote.py new file mode 100644 index 0000000..01a381b --- /dev/null +++ b/renderer/quote.py @@ -0,0 +1,11 @@ +import re + +from mistletoe.span_token import SpanToken + + +class Quote(SpanToken): + """ + Quote span token ("Eiersalat"). + Identifies quoted text. + """ + pattern = re.compile(r'"([^"]+)"') diff --git a/test/__init__.py b/test/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/test/test_quote.py b/test/test_quote.py new file mode 100644 index 0000000..72cc2c4 --- /dev/null +++ b/test/test_quote.py @@ -0,0 +1,19 @@ +import mistletoe +from test.util import paragraph + +from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer + + +def test_quote_html() : + + assertions = { + '"quote"' : '„quote“', + '" quote "' : '„ quote “', + '"quote" "' : '„quote“ "', + '"quo te1" filltext "qu ot e2"' : '„quo te1“ filltext „qu ot e2“', + '"quo *te1*" filltext "qu ot e2"' : '„quo te1“ filltext „qu ot e2“', + '""' : '""', + } + + for assertion in assertions: + assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion]) From e15a2109bb8dcc7f8bec2ebcd44df33d78dc967e Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sat, 7 Dec 2024 15:06:23 +0100 Subject: [PATCH 3/3] refactor: fixed library import --- test/test_quote.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_quote.py b/test/test_quote.py index 72cc2c4..e660c7b 100644 --- a/test/test_quote.py +++ b/test/test_quote.py @@ -1,7 +1,7 @@ import mistletoe -from test.util import paragraph from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer +from test.util import paragraph def test_quote_html() :