Pull request #4: Feature/quotes token

Merge in FRAG/50ohm.de from feature/quotes-token to main

* commit 'e15a2109bb8dcc7f8bec2ebcd44df33d78dc967e':
  refactor: fixed library import
  feature: add quote renderer
  feature: add util function for testing
This commit is contained in:
Prof.Dr. Matthias Jung DL9MJ
2024-12-07 14:20:49 +00:00
5 changed files with 36 additions and 1 deletions
+4 -1
View File
@@ -1,12 +1,15 @@
from mistletoe import HtmlRenderer from mistletoe import HtmlRenderer
from renderer.comment import Comment from renderer.comment import Comment
from renderer.quote import Quote
class FiftyOhmHtmlRenderer(HtmlRenderer): class FiftyOhmHtmlRenderer(HtmlRenderer):
def __init__(self): def __init__(self):
super().__init__(Comment) super().__init__(Comment, Quote)
def render_comment(): def render_comment():
return None return None
def render_quote(self, token):
return f"„{self.render_inner(token)}“"
+11
View File
@@ -0,0 +1,11 @@
import re
from mistletoe.span_token import SpanToken
class Quote(SpanToken):
"""
Quote span token ("Eiersalat").
Identifies quoted text.
"""
pattern = re.compile(r'"([^"]+)"')
View File
+19
View File
@@ -0,0 +1,19 @@
import mistletoe
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from test.util import paragraph
def test_quote_html() :
assertions = {
'"quote"' : '„quote“',
'" quote "' : '„ quote “',
'"quote" "' : '„quote“ "',
'"quo te1" filltext "qu ot e2"' : '„quo te1“ filltext „qu ot e2“',
'"quo *te1*" filltext "qu ot e2"' : '„quo <em>te1</em>“ filltext „qu ot e2“',
'""' : '""',
}
for assertion in assertions:
assert mistletoe.markdown(assertion, FiftyOhmHtmlRenderer) == paragraph(assertions[assertion])
+2
View File
@@ -0,0 +1,2 @@
def paragraph(text) :
return f'<p>{text}</p>\n'