V0.4.1,改完了

This commit is contained in:
跨越晨昏 2024-08-31 14:20:37 +08:00
parent 76d38446c7
commit 65503f0ea7

View File

@ -146,7 +146,7 @@ class CodeBlock:
:return: 不含代码的文本 :return: 不含代码的文本
""" """
for index, item in enumerate(self.codes): # 替换代码块为-@@-(ID)-@@- for index, item in enumerate(self.codes): # 替换代码块为-@@-(ID)-@@-
self.text = re.sub(fr'`{re.escape(item)}`', f'-@@-{index}-@@-', self.text) # 同时转译特殊字符 self.text = re.sub(fr'`{re.escape(item)}`', f'\0\1{index}\1\0', self.text) # 同时转译特殊字符
return self.text return self.text
def rendering(self, values: Dict[str, str]): def rendering(self, values: Dict[str, str]):
@ -179,7 +179,7 @@ class CodeBlock:
:return: 加上代码的文章 :return: 加上代码的文章
""" """
for index, item in enumerate(self.codes): for index, item in enumerate(self.codes):
new_text = re.sub(fr'-@@-{index}-@@-', f'{item}', new_text, flags=re.DOTALL) new_text = re.sub(f'\0\1{index}\1\0', f'{item}', new_text, flags=re.DOTALL)
return new_text return new_text
@ -195,7 +195,7 @@ class Escape:
""" """
self.text = text self.text = text
self.escapes = { self.escapes = {
i: f'-@@-@{i}-@@-' for i in re.findall(r'\\(.)', text) i: f'\0\1\2{i}\2\1\0' for i in re.findall(r'\\(.)', text)
} # 找出要转义的字符 } # 找出要转义的字符
print(self.escapes) print(self.escapes)
@ -208,7 +208,7 @@ class Escape:
""" """
# TODO # TODO
for index, item in enumerate(self.escapes): # 替换代码块为-@@-(ID)-@@- for index, item in enumerate(self.escapes): # 替换代码块为-@@-(ID)-@@-
self.text = re.sub(fr'{index}', f'-@@-@{index}-@@-', self.text) # 同时转译特殊字符 self.text = re.sub(fr'{index}', f'\0\1\2{index}\2\1\0', self.text) # 同时转译特殊字符
return self.text return self.text
def restore(self, new_text: str): def restore(self, new_text: str):
@ -263,7 +263,7 @@ class Basic:
r'\1\n', # 移除已被标签包裹的行的额外的<p>标签 r'\1\n', # 移除已被标签包裹的行的额外的<p>标签
'\n'.join( '\n'.join(
[ [
f'<p>{line}</p>' if not re.search(r'-@@-.+?-@@-', line) else line # 识别-@@-n-@@-并保留 f'<p>{line}</p>' if not re.search('\0.+?\0', line) else line # 识别-@@-n-@@-并保留
for line in self.text.splitlines() # 把所有非空的行都套上<p>标签 for line in self.text.splitlines() # 把所有非空的行都套上<p>标签
if not re.search(r'^\s*\n?$', line) # 识别空行或空白行 if not re.search(r'^\s*\n?$', line) # 识别空行或空白行
] ]