From ea5144cebd19827065d6c756f50bb7cf3418364c Mon Sep 17 00:00:00 2001 From: "Prof. Dr. Matthias Jung DL9MJ" Date: Mon, 19 May 2025 20:18:13 +0200 Subject: [PATCH] refactor: put margin in jina template --- renderer/fifty_ohm_html_renderer.py | 44 +++++++++++++---------------- templates/html/margin.html | 19 +++++++++++++ 2 files changed, 38 insertions(+), 25 deletions(-) create mode 100644 templates/html/margin.html diff --git a/renderer/fifty_ohm_html_renderer.py b/renderer/fifty_ohm_html_renderer.py index 22c68e1..2302bae 100644 --- a/renderer/fifty_ohm_html_renderer.py +++ b/renderer/fifty_ohm_html_renderer.py @@ -1,5 +1,6 @@ -import textwrap + +from jinja2 import Environment, FileSystemLoader from mistletoe import Document, HtmlRenderer from .comment import BlockComment @@ -26,7 +27,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): section_url = "section.html" ref_id = 0 - def __init__(self, question_renderer=None): + def __init__(self, question_renderer=None, picture_handler=None, photo_handler=None): super().__init__( Dash, BlockComment, @@ -45,6 +46,8 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): Table, ) self.question_renderer = question_renderer + self.picture_handler = picture_handler + self.photo_handler = photo_handler def render_dash(self, token): return " – " @@ -114,27 +117,14 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): def render_tag_helper(type, content, margin_id, margin_anchor_id): """This function is used to render the different types of tags. It is used in the HtmlRenderer class and also in the test class""" - return textwrap.dedent(f"""\ -
- {content} -
- - - """) + env = Environment(loader=FileSystemLoader("templates/html")) + margin_template = env.get_template("margin.html") + return margin_template.render( + type=type, + content=content, + id=margin_id, + margin_anchor_id=margin_anchor_id, + ) def render_tag(self, token): if token.tagtype == "latexonly": @@ -181,24 +171,28 @@ class FiftyOhmHtmlRenderer(HtmlRenderer): def render_picture_helper(id, ref, text, number): return f"""
- +
Abbildung {number}: {text}
""" def render_picture(self, token): + if self.picture_handler is not None: + self.picture_handler(token.id) return self.render_picture_helper(token.id, token.ref, token.text, token.number) @staticmethod def render_photo_helper(id, ref, text, number): return f"""
- +
Abbildung {number}: {text}
""" def render_photo(self, token): + if self.photo_handler is not None: + self.photo_handler(token.id) return self.render_photo_helper(token.id, token.ref, token.text, token.number) @staticmethod diff --git a/templates/html/margin.html b/templates/html/margin.html new file mode 100644 index 0000000..4023fa2 --- /dev/null +++ b/templates/html/margin.html @@ -0,0 +1,19 @@ +
+ {{ content }} +
+ + \ No newline at end of file