From 746f18e735d9dd105de080092c565c9fe4a8f43f Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:13:26 +0100 Subject: [PATCH 1/8] fix: Fixed bug that tag detects --- renderer/tag.py | 14 +++++++++++++- test/test_tag.py | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/renderer/tag.py b/renderer/tag.py index 05d089b..6bdc187 100644 --- a/renderer/tag.py +++ b/renderer/tag.py @@ -2,12 +2,24 @@ import re from mistletoe.block_token import BlockToken, tokenize +captures = [ + "margin", + "indepth", + "webmargin", + "tipp", + "webtipp", + "webindepth", + "unit", + "danger", + "webonly", + "latexonly", +] class Tag(BlockToken): @staticmethod def start(line): - return re.match(r"^\s*<[^>]+>", line) + return re.match(r"^\s*<("+"|".join(captures)+r")+>", line) @classmethod def read(cls, lines): diff --git a/test/test_tag.py b/test/test_tag.py index ba6ab95..967e8f3 100644 --- a/test/test_tag.py +++ b/test/test_tag.py @@ -18,7 +18,7 @@ def test_tag_html() : "\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,0)+'\n', - "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("webtipp","

Foo

",1,0)+'\n', + "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("tipp","

Foo

",1,0)+'\n', "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("indepth","

Foo

",1,0)+'\n', "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("unit","

Foo

",1,0)+'\n', "\nFoo\n" : FiftyOhmHtmlRenderer.render_tag_helper("danger","

Foo

",1,0)+'\n', From bedab8faa8d855b0fa4a15228db535c2fe508ceb Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:14:10 +0100 Subject: [PATCH 2/8] feature: add dash renderer --- renderer/dash.py | 11 +++++++++++ test/test_dash.py | 14 ++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 renderer/dash.py create mode 100644 test/test_dash.py diff --git a/renderer/dash.py b/renderer/dash.py new file mode 100644 index 0000000..10f80a2 --- /dev/null +++ b/renderer/dash.py @@ -0,0 +1,11 @@ +import re + +from mistletoe.span_token import SpanToken + + +class Dash(SpanToken): + """ + Dash span token ( - ). + Identifies a dash in a text. + """ + pattern = re.compile(r'(\s-\s)') diff --git a/test/test_dash.py b/test/test_dash.py new file mode 100644 index 0000000..2289b0c --- /dev/null +++ b/test/test_dash.py @@ -0,0 +1,14 @@ +import mistletoe + +from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer +from test.util import paragraph + + +def test_dash_html() : + + assertions = { + "Foo - Bar" : "Foo – Bar", + } + + for assertion in assertions: + assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion]) From bc53eb0f9e9a11fe0b3d9057649596125b5053a7 Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:14:35 +0100 Subject: [PATCH 3/8] feature: add comment test --- renderer/comment.py | 12 +++++++++++- renderer/fifty_ohm_html_renderer.py | 22 +++++++++++++++------- test/test_comment.py | 20 ++++++++++++++++++++ 3 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 test/test_comment.py diff --git a/renderer/comment.py b/renderer/comment.py index cd4ff6f..52fff45 100644 --- a/renderer/comment.py +++ b/renderer/comment.py @@ -1,7 +1,17 @@ +import re + from mistletoe.block_token import BlockToken +from mistletoe.span_token import SpanToken -class Comment(BlockToken): +class SpanComment(SpanToken): + """ + Coment span token (% Eiersalat). + Identifies a comment in text. + """ + pattern = re.compile(r'(%.*\n?)') + +class BlockComment(BlockToken): @staticmethod def start(line): return line.startswith("%") diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py index 0695e89..e48d73c 100644 --- a/renderer/fifty_ohm_html_renderer.py +++ b/renderer/fifty_ohm_html_renderer.py @@ -1,9 +1,11 @@ -from mistletoe import HtmlRenderer import textwrap -from renderer.comment import Comment -from renderer.tag import Tag +from mistletoe import HtmlRenderer + +from renderer.comment import BlockComment, SpanComment +from renderer.dash import Dash from renderer.quote import Quote +from renderer.tag import Tag from renderer.underline import Underline @@ -13,10 +15,16 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): margin_id = 0 def __init__(self): - super().__init__(Comment, Quote, Underline, Tag) + super().__init__(Dash, BlockComment, SpanComment, Quote, Underline, Tag) - def render_comment(): - return None + def render_dash(self, token): + return " – " + + def render_block_comment(self, token): + return "a" + + def render_span_comment(self, token): + return "" def render_quote(self, token): return f"„{self.render_inner(token)}“" @@ -64,7 +72,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): if(token.tagtype == "webmargin"): type = "margin" - elif(token.tagtype == "webtip"): + elif(token.tagtype == "webtipp"): type = "tipp" elif(token.tagtype == "webindepth"): type = "indepth" diff --git a/test/test_comment.py b/test/test_comment.py new file mode 100644 index 0000000..9abf3ce --- /dev/null +++ b/test/test_comment.py @@ -0,0 +1,20 @@ +import mistletoe +import pytest +from mistletoe.ast_renderer import AstRenderer + +from renderer.comment import BlockComment, SpanComment +from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer +from test.util import paragraph + + +def test_comment_html(capsys) : + + assertions = { + "%Comment\nBar" : "

Bar

\n", + # TODO: This test is not working as expected. The comment should be removed + #"%Comment\n" : "a", + "Foo\n%Comment\nBar" : "

Foo\nBar

\n", + } + + for assertion in assertions: + assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == assertions[assertion] From c92fc10167a7cc4e43698daf82b8ac73ba5d88c2 Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:44:51 +0100 Subject: [PATCH 4/8] bugfix: fix pipeline --- .drone.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 01ba815..b91381f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,10 +4,8 @@ name: default steps: - name: 50ohm.de - image: debian:latest + image: ghcr.io/astral-sh/uv:python3.12-bookworm environment: commands: - - apt-get update && apt-get install -qyf --no-install-recommends python3 - - curl -LsSf https://astral.sh/uv/install.sh | sh - - pip install --break-system-packages `cat requirements.txt` + - uv pip install --break-system-packages `cat requirements.txt` - cd test && pytest \ No newline at end of file From e7f9ee9e15c0605ad25678bc52c1ba21ace0db2a Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:46:33 +0100 Subject: [PATCH 5/8] bugfix: fix --system flag --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index b91381f..cb2c401 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,5 +7,5 @@ steps: image: ghcr.io/astral-sh/uv:python3.12-bookworm environment: commands: - - uv pip install --break-system-packages `cat requirements.txt` + - uv pip install --system --break-system-packages `cat requirements.txt` - cd test && pytest \ No newline at end of file From a5102f64af864fef282b2b8904d389a85c6fbe6f Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 8 Dec 2024 10:53:42 +0100 Subject: [PATCH 6/8] feature: add test reporting --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index cb2c401..628225d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,4 +8,4 @@ steps: environment: commands: - uv pip install --system --break-system-packages `cat requirements.txt` - - cd test && pytest \ No newline at end of file + - cd test && pytest --junitxml=./test-reports/junit.xml From 4238b70cf8d1fda8b85630fbcc2f1fb3f31f7cb4 Mon Sep 17 00:00:00 2001 From: Tim Grelka DA2TG Date: Sun, 8 Dec 2024 10:46:43 +0000 Subject: [PATCH 7/8] Angewendeter Vorschlag --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 628225d..2dc868f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,5 +7,5 @@ steps: image: ghcr.io/astral-sh/uv:python3.12-bookworm environment: commands: - - uv pip install --system --break-system-packages `cat requirements.txt` + - uv pip install --system --break-system-packages --requirements requirements.txt - cd test && pytest --junitxml=./test-reports/junit.xml From 060e2de215d70a5eba53371c8fed99daf3fc2166 Mon Sep 17 00:00:00 2001 From: Tim Grelka DA2TG Date: Sun, 8 Dec 2024 10:47:56 +0000 Subject: [PATCH 8/8] Angewendeter Vorschlag --- renderer/fifty_ohm_html_renderer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py index e48d73c..5fe08fe 100644 --- a/renderer/fifty_ohm_html_renderer.py +++ b/renderer/fifty_ohm_html_renderer.py @@ -21,7 +21,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): return " – " def render_block_comment(self, token): - return "a" + return "" def render_span_comment(self, token): return ""