1.6.2锚点头疼中

This commit is contained in:
跨越晨昏 2024-10-06 22:53:00 +08:00
parent abb07507ae
commit 0fef493d04

View File

@ -89,13 +89,13 @@ class ID(InlineProcessor):
需要对HTML标签设置ID实现的样式 需要对HTML标签设置ID实现的样式
""" """
def __init__(self, pattern: str, tag: str, property_: str, value: Union[str, bool, int] = None): def __init__(self, pattern: str, tag: str, property_: str, value: Union[str, bool] = None):
""" """
初始化 初始化
:param pattern: 正则表达式 :param pattern: 正则表达式
:param tag: html标签 :param tag: html标签
:param property_: html标签属性名称 :param property_: html标签属性名称
:param value: html标签属性的值 :param value: html标签属性的值 不设置时为第二个匹配组,设置为整数时则为指定的匹配组,设置为字符串则为原始字符串
""" """
super().__init__(pattern) super().__init__(pattern)
self.tag = tag self.tag = tag
@ -126,26 +126,6 @@ class Emoji(InlineProcessor):
return emoji.emojize(match.group(0)), match.start(), match.end() return emoji.emojize(match.group(0)), match.start(), match.end()
class Syllabus_(InlineProcessor):
"""
需要对HTML标签设置ID实现的样式
"""
def __init__(self, pattern: str):
"""
初始化
:param pattern: 正则表达式
"""
super().__init__(pattern)
def handleMatch(self, match, match_line):
tag = xml.etree.ElementTree.Element(f'h{len(match.group(1).split("."))}') # 创建标签
tag.text = match.group(1) + ' ' + match.group(3) # 设置标签内容
tag.set('id', match.group(1)) # 设置标签属性
return tag, match.start(), match.end()
class Syllabus(BlockProcessor): class Syllabus(BlockProcessor):
# 定义提纲的正则表达式 # 定义提纲的正则表达式
syllabus_re = r'(\d+(\.\d+)*)\s+(.*)' syllabus_re = r'(\d+(\.\d+)*)\s+(.*)'
@ -244,10 +224,13 @@ class Anchor(Extension):
def extendMarkdown(self, md): def extendMarkdown(self, md):
md.registerExtension(self) # 注册扩展 md.registerExtension(self) # 注册扩展
md.inlinePatterns.register(ID( md.inlinePatterns.register(ID(
r'\{#([^{}#]+)}', tag='span', property_='id'), 'hide', 0 r'\{#([^{}#]+)}', tag='span', property_='id', value=1), 'hide', 0
) # 定义锚点
md.inlinePatterns.register(ID(
r'\{([^{}#]+)}', tag='span', property_='id', value=1), 'hide', 0
) # 定义锚点 ) # 定义锚点
def main(text: str) -> Tuple[str, Dict[str, List[str]]]: def main(text: str) -> Tuple[str, Dict[str, List[str]]]:
md = Markdown(extensions=[Basic(), Box(), Anchor()] + list(Extensions.values()), safe_mode=False) md = Markdown(extensions=[Basic(), Box()] + list(Extensions.values()), safe_mode=False)
return md.convert(text), md.Meta return md.convert(text), md.Meta