feat: Renderer add interim references with default values
This commit is contained in:
@@ -4,11 +4,12 @@ from renderer.comment import Comment
|
|||||||
from renderer.quote import Quote
|
from renderer.quote import Quote
|
||||||
from renderer.halfwidth_spaces import HalfwidthSpaces
|
from renderer.halfwidth_spaces import HalfwidthSpaces
|
||||||
from renderer.nonbreaking_spaces import NonbreakingSpaces, NonbreakingSpacesDots
|
from renderer.nonbreaking_spaces import NonbreakingSpaces, NonbreakingSpacesDots
|
||||||
|
from renderer.references import References
|
||||||
|
|
||||||
|
|
||||||
class FiftyOhmHtmlRenderer(HtmlRenderer):
|
class FiftyOhmHtmlRenderer(HtmlRenderer):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__(Comment, Quote, HalfwidthSpaces, NonbreakingSpaces, NonbreakingSpacesDots)
|
super().__init__(Comment, Quote, HalfwidthSpaces, NonbreakingSpaces, NonbreakingSpacesDots, References)
|
||||||
|
|
||||||
def render_comment():
|
def render_comment():
|
||||||
return None
|
return None
|
||||||
@@ -27,3 +28,6 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
|
|||||||
|
|
||||||
def render_nonbreaking_spaces_dots(self, token):
|
def render_nonbreaking_spaces_dots(self, token):
|
||||||
return f" {token.first} "
|
return f" {token.first} "
|
||||||
|
|
||||||
|
def render_references(self, token, dest_id=0, chap_url="DeineMama.html"):
|
||||||
|
return f"<a href="{chap_url}#ref_{token.first}" onclick="highlightRef('{token.first}');">{dest_id}</a>"
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
|
from mistletoe.span_token import SpanToken
|
||||||
|
|
||||||
|
|
||||||
|
class References(SpanToken):
|
||||||
|
"""
|
||||||
|
Resolve references for html
|
||||||
|
Identifies "[ref:$]"
|
||||||
|
"""
|
||||||
|
pattern = re.compile(r"\[ref\:(\S+)\]")
|
||||||
|
|
||||||
|
def __init__(self, match_object):
|
||||||
|
self.first = match_object.group(1)
|
||||||
|
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
import mistletoe
|
||||||
|
|
||||||
|
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
|
||||||
|
from test.util import paragraph
|
||||||
|
|
||||||
|
def test_references_html():
|
||||||
|
# Right now this tests only the default values.
|
||||||
|
# The correct behavior can be tested when the information is added to the renderer class
|
||||||
|
assertions = {
|
||||||
|
"[ref:e_oszilloskop_bildschirmfoto_sinus]" : "<a href="DeineMama.html#ref_e_oszilloskop_bildschirmfoto_sinus" onclick="highlightRef('e_oszilloskop_bildschirmfoto_sinus');">0</a>",
|
||||||
|
"[ref:n_rst_r]" : "<a href="DeineMama.html#ref_n_rst_r" onclick="highlightRef('n_rst_r');">0</a>",
|
||||||
|
"[ref:Uuuuuh]" : "<a href="DeineMama.html#ref_Uuuuuh" onclick="highlightRef('Uuuuuh');">0</a>" # Test the default parameters
|
||||||
|
}
|
||||||
|
|
||||||
|
for key, value in assertions.items():
|
||||||
|
assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)
|
||||||
Reference in New Issue
Block a user