feature: support qso in slides

This commit is contained in:
Prof. Dr. Matthias Jung DL9MJ
2025-06-24 22:04:42 +02:00
committed by Tim Grelka
parent 44189e8816
commit 83eeef6c7c
+12
View File
@@ -1,7 +1,9 @@
from jinja2 import Environment, FileSystemLoader
from mistletoe import Document
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from .qso import Qso
from .slide_break import SlideBreak
@@ -10,10 +12,12 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer):
def __init__(self, question_renderer=None, picture_handler=None, photo_handler=None):
super().__init__(
SlideBreak,
Qso,
question_renderer=question_renderer,
picture_handler=picture_handler,
photo_handler=photo_handler,
)
self.env = Environment(loader=FileSystemLoader("templates/slide"))
def render_wrapper(self, content):
content = "---\n" + content
@@ -33,3 +37,11 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer):
else:
return f'<section {token.attribute}>\n{inner}\n</section>\n'
def render_qso(self, token):
qso = ""
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'<div class="qso_{direction} {fade}">{self.render_inner(child)}</div>\n'
return qso