diff --git a/docs/changelog.md b/docs/changelog.md index 5c704413..6db0b5c0 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -17,8 +17,6 @@ See the [Contributing Guide](contributing.md) for details. * Ensure nested elements inside inline comments are properly unescaped (#1571). * Make the docs build successfully with mkdocstrings-python 2.0 (#1575). * Fix infinite loop when multiple bogus or unclosed HTML comments appear in input (#1578). -* Backtick formatting permitted in reference links to match conventional - links (#495). ## [3.10.0] - 2025-11-03 diff --git a/markdown/inlinepatterns.py b/markdown/inlinepatterns.py index ee284a61..9f24512b 100644 --- a/markdown/inlinepatterns.py +++ b/markdown/inlinepatterns.py @@ -70,7 +70,7 @@ def build_inlinepatterns(md: Markdown, **kwargs: Any) -> util.Registry[InlinePro """ inlinePatterns = util.Registry() - inlinePatterns.register(BacktickInlineProcessor(BACKTICK_RE, md), 'backtick', 190) + inlinePatterns.register(BacktickInlineProcessor(BACKTICK_RE), 'backtick', 190) inlinePatterns.register(EscapeInlineProcessor(ESCAPE_RE, md), 'escape', 180) inlinePatterns.register(ReferenceInlineProcessor(REFERENCE_RE, md), 'reference', 170) inlinePatterns.register(LinkInlineProcessor(LINK_RE, md), 'link', 160) @@ -435,14 +435,12 @@ def handleMatch(self, m: re.Match[str], data: str) -> tuple[etree.Element, int, class BacktickInlineProcessor(InlineProcessor): """ Return a `` element containing the escaped matching text. """ - def __init__(self, pattern: str, md: Markdown): + def __init__(self, pattern: str): InlineProcessor.__init__(self, pattern) self.ESCAPED_BSLASH = '{}{}{}'.format(util.STX, ord('\\'), util.ETX) self.tag = 'code' """ The tag of the rendered element. """ - self.md = md - def handleMatch(self, m: re.Match[str], data: str) -> tuple[etree.Element | str, int, int]: """ If the match contains `group(3)` of a pattern, then return a `code` @@ -453,8 +451,6 @@ def handleMatch(self, m: re.Match[str], data: str) -> tuple[etree.Element | str, """ if m.group(3): - if data.lstrip('[').rstrip(']').lower() in self.md.references: # ignore known references - return None, None, None el = etree.Element(self.tag) el.text = util.AtomicString(util.code_escape(m.group(3).strip())) return el, m.start(0), m.end(0) @@ -883,8 +879,6 @@ class ReferenceInlineProcessor(LinkInlineProcessor): RE_LINK = re.compile(r'\s?\[([^\]]*)\]', re.DOTALL | re.UNICODE) - RE_BACKTICK = re.compile(BACKTICK_RE, re.DOTALL | re.UNICODE) - def handleMatch(self, m: re.Match[str], data: str) -> tuple[etree.Element | None, int | None, int | None]: """ Return [`Element`][xml.etree.ElementTree.Element] returned by `makeTag` method or `(None, None, None)`. @@ -931,19 +925,7 @@ def makeTag(self, href: str, title: str, text: str) -> etree.Element: if title: el.set('title', title) - if '`' in text: # Process possible backtick within text - m = self.RE_BACKTICK.search(text) - if m and m.group(3): - el2 = etree.Element('code') - el2.text = util.AtomicString(util.code_escape(m.group(3).strip())) - el.append(el2) - el.text = text[0:m.start(0)] - el2.tail = text[m.end(0):] - else: - el.text = text - else: - el.text = text - + el.text = text return el diff --git a/tests/test_syntax/inline/test_links.py b/tests/test_syntax/inline/test_links.py index 708c980a..e57bd995 100644 --- a/tests/test_syntax/inline/test_links.py +++ b/tests/test_syntax/inline/test_links.py @@ -164,24 +164,6 @@ def test_angles_and_nonsense_url(self): '

test nonsense.

' ) - def test_monospaced_title(self): - self.assertMarkdownRenders( - """[`test`](link)""", - """

test

""" - ) - - def test_title_containing_monospaced_title(self): - self.assertMarkdownRenders( - """[some `test`](link)""", - """

some test

""" - ) - - def test_title_containing_single_backtick(self): - self.assertMarkdownRenders( - """[some `test](link)""", - """

some `test

""" - ) - class TestReferenceLinks(TestCase): @@ -452,50 +434,3 @@ def test_ref_round_brackets(self): """ ) ) - - def test_ref_link_monospaced_text(self): - self.assertMarkdownRenders( - self.dedent( - """ - [`Text`] - - [`Text`]: http://example.com - """ - ), - """

Text

""" - ) - - def test_ref_link_with_containing_monospaced_text(self): - self.assertMarkdownRenders( - self.dedent( - """ - [some `Text`] - - [some `Text`]: http://example.com - """ - ), - """

some Text

""" - ) - - self.assertMarkdownRenders( - self.dedent( - """ - [`Text` after] - - [`Text` after]: http://example.com - """ - ), - """

Text after

""" - ) - - def test_ref_link_with_single_backtick(self): - self.assertMarkdownRenders( - self.dedent( - """ - [some `Text] - - [some `Text]: http://example.com - """ - ), - """

some `Text

""" - )