diff --git a/pyrogram/parser/markdown.py b/pyrogram/parser/markdown.py index d00e7558..4daf27ce 100644 --- a/pyrogram/parser/markdown.py +++ b/pyrogram/parser/markdown.py @@ -57,6 +57,7 @@ OPENING_TAG = "<{}>" CLOSING_TAG = "" URL_MARKUP = '{}' FIXED_WIDTH_DELIMS = [CODE_DELIM, PRE_DELIM] +CODE_TAG_RE = re.compile(r".*?") class Markdown: @@ -108,6 +109,12 @@ class Markdown: delims = set() is_fixed_width = False + placeholders = {} + for i, code_section in enumerate(CODE_TAG_RE.findall(text)): + placeholder = f"{{CODE_SECTION_{i}}}" + placeholders[placeholder] = code_section + text = text.replace(code_section, placeholder, 1) + for i, match in enumerate(re.finditer(MARKDOWN_RE, text)): start, _ = match.span() delim, text_url, url = match.groups() @@ -155,6 +162,9 @@ class Markdown: text = utils.replace_once(text, delim, tag, start) + for placeholder, code_section in placeholders.items(): + text = text.replace(placeholder, code_section) + return await self.html.parse(text) @staticmethod