From 77eb1f1c39ab88a0d6537927e43affa85eddadc1 Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Sun, 1 Jun 2025 15:53:10 +0200 Subject: [PATCH] feature: tags for slides --- renderer/fifty_ohm_html_slide_renderer.py | 20 ++++++- renderer/slide_break.py | 1 - renderer/tag.py | 5 ++ test/acceptanceTestSlides.md | 72 ++++++++++++++++++++++- test/test_html_slides.py | 3 +- 5 files changed, 97 insertions(+), 4 deletions(-) diff --git a/renderer/fifty_ohm_html_slide_renderer.py b/renderer/fifty_ohm_html_slide_renderer.py index 1c9e98e..d5fc61e 100644 --- a/renderer/fifty_ohm_html_slide_renderer.py +++ b/renderer/fifty_ohm_html_slide_renderer.py @@ -5,6 +5,7 @@ from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer from .qso import Qso from .slide_break import SlideBreak +from .tag import Tag class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer): @@ -13,6 +14,7 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer): super().__init__( SlideBreak, Qso, + Tag, question_renderer=question_renderer, picture_handler=picture_handler, photo_handler=photo_handler, @@ -38,10 +40,26 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer): return f'
\n{inner}\n
\n' def render_qso(self, token): - qso = "" + qso = '
\n' for child in token.children: direction = "other" if child.received else "own" fade = "fragment fade-left" if child.received else "fragment fade-right" qso += f'
{self.render_inner(child)}
\n' + qso += '
\n' return qso + def render_note(self, token): + return f'\n' + + def render_tag(self, token): + if token.tagtype == "fragment": + return f'
\n{self.render_inner(token)}\n
\n' + if token.tagtype == "left": + return f'
\n{self.render_inner(token)}\n
\n' + if token.tagtype == "right": + return f'\n' + elif token.tagtype == "note": + return f'\n' + else: + return "" # Ignore other tags in slide context + diff --git a/renderer/slide_break.py b/renderer/slide_break.py index dadfe08..84bde86 100644 --- a/renderer/slide_break.py +++ b/renderer/slide_break.py @@ -1,5 +1,4 @@ -# ^\s*---\s*(.*)\s*$ import re from mistletoe.block_token import BlockToken, tokenize diff --git a/renderer/tag.py b/renderer/tag.py index 376d867..803385d 100644 --- a/renderer/tag.py +++ b/renderer/tag.py @@ -3,6 +3,7 @@ import re from mistletoe.block_token import BlockToken, tokenize captures = [ + # Website: "margin", "indepth", "webmargin", @@ -18,7 +19,11 @@ captures = [ "webonly", "latexonly", "wordorigin", + # Slides: + "note", "fragment", + "left", + "right", ] diff --git a/test/acceptanceTestSlides.md b/test/acceptanceTestSlides.md index 0302de7..c24e6c5 100644 --- a/test/acceptanceTestSlides.md +++ b/test/acceptanceTestSlides.md @@ -1,3 +1,44 @@ +# Akzeptanztest + +--- style="font-size: 4pt;" + +## Kleinere Schrift +* Längere +* Liste + +--- + +## Folie mit direktem Übergang +Mit Text + +--- data-transition="none" + +## Folie mit direktem Übergang +Mit anderem Text + +--- + +## Externer Link und Formel + +[Link zum DARC](https://darc.de/) + +$\lambda[[\text{m}]] = \dfrac{300}{f[[\text{MHz}]]} = \dfrac{300}{145,3 \ \text{MHz}} \approx 2,06 \ \text{m}$ + +--- + +## Notes Test + +Diese Folie hat Notizen + + +Die Notiz wird nur in der Speaker-Ansicht angezeigt +* Listen sind auch möglich +* Am besten kurz halten +* Der Platz ist *begrenzt* + + +--- + ## Fragment Test Dies ist ein Text der direkt da ist @@ -19,6 +60,8 @@ CQ CQ hier ist DL1PZ mit einem allgemeinen Anruf, hier ist DL1PZ und hört. > DL1PZ hier ist DL9MJ bitte kommen +--- + ## Slide mit Picture [picture:123:p_test:testbild] @@ -62,4 +105,31 @@ Slide C ## Slide PINK -PINK \ No newline at end of file +PINK + +## Iframe als Hintergrund + +--- data-background-iframe="https://f5len.org/tools/locator/" data-background-interactive + +--- + +## Double Column + + +[photo:167:rufzeichen_flugzeug:Flugzeug mit dem Rufzeichen DEBPF] + + +* Funkstationen verwenden Rufzeichen, um sich zu identifizieren +* Folge von Buchstaben und Ziffern +* Jedes mit Funk ausgerüstete Flugzeug und Schiff hat ein Rufzeichen + + +--- + +## Folie mit direktem Übergang +Mit Text + +--- data-transition="none" + +## Folie mit direktem Übergang +Mit anderem Text ... keine ahnung ob das je ging? \ No newline at end of file diff --git a/test/test_html_slides.py b/test/test_html_slides.py index 86fadda..06362b0 100644 --- a/test/test_html_slides.py +++ b/test/test_html_slides.py @@ -85,7 +85,8 @@ def question_stub(input): ) def print_head(): - return """ + return """ + DARC Ausbildungsplattform