From ac90cd60020b3815897e3b91fae502dcf0e60350 Mon Sep 17 00:00:00 2001 From: Tim Grelka Date: Thu, 19 Jun 2025 15:00:43 +0200 Subject: [PATCH] feat: use standard render method for rendering slides --- renderer/fifty_ohm_html_slide_renderer.py | 6 ------ src/build.py | 4 +++- test/acceptanceTestSlides.md | 2 ++ test/test_html_slides.py | 7 ++++++- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/renderer/fifty_ohm_html_slide_renderer.py b/renderer/fifty_ohm_html_slide_renderer.py index 3a8e69b..8ded848 100644 --- a/renderer/fifty_ohm_html_slide_renderer.py +++ b/renderer/fifty_ohm_html_slide_renderer.py @@ -1,5 +1,3 @@ -from mistletoe import Document - from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer from .slide_break import SlideBreak @@ -11,10 +9,6 @@ class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer): SlideBreak, **kwargs, ) - - def render_wrapper(self, content): - content = "---\n" + content - return super().render(Document(content)) def render_slide_break(self, token): inner = self.render_inner(token) diff --git a/src/build.py b/src/build.py index 9e0d9a9..465784e 100644 --- a/src/build.py +++ b/src/build.py @@ -193,8 +193,10 @@ class Build: result += help_template.render() result += "\n" for section in sections: + if not section["slide"].startswith("---"): + section["slide"] = "---\n" + section["slide"] tmp = f'
\n

{section["title"]}

\n
\n' - tmp += renderer.render_wrapper(section["slide"]) + tmp += renderer.render(Document(section["slide"])) result += f"
{tmp}
\n" result += next_template.render( edition=edition, diff --git a/test/acceptanceTestSlides.md b/test/acceptanceTestSlides.md index c24e6c5..dca7dea 100644 --- a/test/acceptanceTestSlides.md +++ b/test/acceptanceTestSlides.md @@ -1,3 +1,5 @@ +--- + # Akzeptanztest --- style="font-size: 4pt;" diff --git a/test/test_html_slides.py b/test/test_html_slides.py index 18c6f5f..291e528 100644 --- a/test/test_html_slides.py +++ b/test/test_html_slides.py @@ -2,6 +2,7 @@ import json import random from jinja2 import Environment, FileSystemLoader +from mistletoe import Document from renderer.fifty_ohm_html_slide_renderer import FiftyOhmHtmlSlideRenderer @@ -24,6 +25,7 @@ def parse_katalog(): return questions + def filter_shuffle_answers(seq): try: answers = [] @@ -39,6 +41,7 @@ def filter_shuffle_answers(seq): except Exception: return seq + def question_stub(input): """Combines the original question dataset from BNetzA with our internal metadata""" with open("data/metadata.json") as metadata_file: @@ -77,17 +80,19 @@ def question_stub(input): answer_pictures=answer_pictures, ) + env = Environment(loader=FileSystemLoader("templates/")) env.filters["shuffle_answers"] = filter_shuffle_answers question_template = env.get_template("slide/question.html") slide_template = env.get_template("slide/slide.html") questions = parse_katalog() + def test_html_slides(capsys): with capsys.disabled(): with open("test/acceptanceTestSlides.md") as file: content = file.read() with FiftyOhmHtmlSlideRenderer(question_renderer=question_stub) as renderer: - output = renderer.render_wrapper(content) + output = renderer.render(Document(content)) with open("test/acceptanceTestSlides.html", "w") as output_file: output_file.write(output)