from mistletoe import Document from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer from .slide_break import SlideBreak class FiftyOhmHtmlSlideRenderer(FiftyOhmHtmlRenderer): def __init__(self, **kwargs): super().__init__( 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) if token.attribute is None: return f"
\n{inner}\n
\n" else: return f"
\n{inner}\n
\n" def render_qso(self, token): 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_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' return "" # Ignore other tags in slide context anyway in tokenizer