feature: implement index on html side as stub

This commit is contained in:
Matthias Jung
2026-04-01 23:30:43 +02:00
parent 11b41f2de6
commit 1e361787f0
3 changed files with 41 additions and 0 deletions
+6
View File
@@ -6,6 +6,7 @@ from .dash import Dash
from .formula import Formula
from .halfwidth_spaces import HalfwidthSpaces
from .include import Include
from .index import Index
from .morse import Morse
from .nonbreaking_spaces import NonbreakingSpaces, NonbreakingSpacesDots
from .photo import Photo
@@ -64,6 +65,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
Qso,
Include,
Formula,
Index,
*extras,
**kwargs,
)
@@ -332,3 +334,7 @@ class FiftyOhmHtmlRenderer(HtmlRenderer):
def render_formula(self, token):
return f"\n$${token.formula}$$\n"
def render_index(self, token):
# For HTML just ignore the index
return ""
+16
View File
@@ -0,0 +1,16 @@
import re
from mistletoe.span_token import SpanToken
class Index(SpanToken):
"""
Resolve index commands
Identifies "[index:term:subterm]" or "[index:term]"
"""
pattern = re.compile(r"[ \t]*\[index:([^:\]\s]+)(?::([^:\]\s]+))?\]")
def __init__(self, match_object):
self.first = match_object.group(1)
self.second = match_object.group(2)
+19
View File
@@ -0,0 +1,19 @@
import mistletoe
import pytest
from renderer.fifty_ohm_html_renderer import FiftyOhmHtmlRenderer
from test.util import paragraph
@pytest.mark.html
def test_index_html():
assertions = {
"Im Betrieb werden Yagi-Antennen [index:Antenne:Yagi-Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen oft gedreht",
"Im Betrieb werden Yagi-Antennen[index:Antenne:Yagi-Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen oft gedreht",
"Im Betrieb werden Yagi-Antennen [index:Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen oft gedreht",
"Im Betrieb werden Yagi-Antennen[index:Antenne] oft gedreht": "Im Betrieb werden Yagi-Antennen oft gedreht",
}
for key, value in assertions.items():
assert mistletoe.markdown(key, FiftyOhmHtmlRenderer) == paragraph(value)