2.1.1 完善

This commit is contained in:
跨越晨昏 2024-10-19 14:22:28 +08:00
parent 562aca135e
commit 1178f28060

View File

@ -8,6 +8,9 @@ from markdown.treeprocessors import Treeprocessor
from markdown.inlinepatterns import InlineProcessor
from markdown.blockprocessors import BlockProcessor
from markdown.preprocessors import Preprocessor
from markdown.blockparser import BlockParser
from markdown import Markdown
from typing import *
import re
@ -215,23 +218,35 @@ class Syllabus(BlockProcessor):
class BoxBlock(BlockProcessor):
def __init__(self, parser, re_start, re_end, style):
def __init__(self, parser: BlockParser, re_start, re_end, style):
"""
初始化
:param parser:
:param re_start:
:param re_end:
:param style:
:param parser: 块处理器
:param re_start: 块的起始re表达式
:param re_end: 块的终止re表达式
:param style: 块的风格
"""
super().__init__(parser)
self.re_start = re_start # start line, e.g., ` !!!!
self.re_end = re_end # last non-blank line, e.g, '!!!\n \n\n'
self.style = style
def test(self, parent, block):
def test(self, parent: xml.etree.ElementTree.Element, block: str) -> Match[str] | None | bool:
"""
检查当前块是否匹配正则表达式
:param parent: 当前块的Element对象
:param block: 当前块的内容
:return: 匹配成功与否
"""
return re.match(self.re_start, block)
def run(self, parent, blocks):
def run(self, parent: xml.etree.ElementTree.Element, blocks: List[str]) -> bool | None:
"""
对匹配到的块进行处理
:param parent: 当前块的Element对象
:param blocks: 包含文本中剩余块的列表
:return: 匹配成功与否
"""
original_block = blocks[0]
blocks[0] = re.sub(self.re_start, '', blocks[0])