From 760e56b38d1e884ae776bcaef7af4a11324e61c0 Mon Sep 17 00:00:00 2001 From: facelessuser Date: Fri, 10 Jan 2025 10:16:44 -0700 Subject: [PATCH] Magiclink: fix handling of repos that start with dot Fixes #2562 --- docs/src/markdown/about/changelog.md | 4 ++++ pymdownx/__meta__.py | 2 +- pymdownx/magiclink.py | 4 ++-- tests/extensions/magiclink/magiclink (shorthand).html | 4 ++++ tests/extensions/magiclink/magiclink (shorthand).txt | 8 ++++++++ tests/extensions/magiclink/magiclink.html | 2 ++ tests/extensions/magiclink/magiclink.txt | 4 ++++ 7 files changed, 25 insertions(+), 3 deletions(-) diff --git a/docs/src/markdown/about/changelog.md b/docs/src/markdown/about/changelog.md index fc34ee333..5b83f6c8f 100644 --- a/docs/src/markdown/about/changelog.md +++ b/docs/src/markdown/about/changelog.md @@ -1,5 +1,9 @@ # Changelog +## 10.14.1 + +- **FIX**: Magiclink: Ensure that repo names that start with `.` are handled correctly. + ## 10.14 - **NEW**: Blocks.HTML: Add new `custom` option to specify tags and the assumed handling for them when automatic mode diff --git a/pymdownx/__meta__.py b/pymdownx/__meta__.py index 7ef31bd77..6fbcfb922 100644 --- a/pymdownx/__meta__.py +++ b/pymdownx/__meta__.py @@ -185,5 +185,5 @@ def parse_version(ver, pre=False): return Version(major, minor, micro, release, pre, post, dev) -__version_info__ = Version(10, 14, 0, "final") +__version_info__ = Version(10, 14, 1, "final") __version__ = __version_info__._get_canonical() diff --git a/pymdownx/magiclink.py b/pymdownx/magiclink.py index d4c450cce..d745f6962 100644 --- a/pymdownx/magiclink.py +++ b/pymdownx/magiclink.py @@ -120,14 +120,14 @@ def create_ext_mentions(name, provider_type): # External reference patterns (issue, pull request, commit, compare) RE_GIT_EXT_REFS = r'''(?x) (?P(?\b{})/) -(?P\b[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d]) +(?P[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d]) (?:(?P(?:\#|!|\?)[1-9][0-9]*)|(?P@[a-f\d]{{40}})(?:\.{{3}}(?P[a-f\d]{{40}}))?))\b ''' # Internal reference patterns (issue, pull request, commit, compare) RE_GIT_INT_EXT_REFS = r'''(?x) (?P(?\b{})/)? -(?P\b[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d]) +(?P[-._a-zA-Z\d]{{0,99}}[a-zA-Z\d]) (?:(?P(?:\#|!|\?)[1-9][0-9]*)|(?P@[a-f\d]{{40}})(?:\.{{3}}(?P[a-f\d]{{40}}))?))\b ''' diff --git a/tests/extensions/magiclink/magiclink (shorthand).html b/tests/extensions/magiclink/magiclink (shorthand).html index 0dfc1f050..083c84c01 100644 --- a/tests/extensions/magiclink/magiclink (shorthand).html +++ b/tests/extensions/magiclink/magiclink (shorthand).html @@ -20,6 +20,10 @@

Pull request some-user/some-repo!2

Commit some-user/some-repo@3f6b07a8

Compare some-user/some-repo@e2ed7e0b...90b6fb87

+

Mention facelessuser/.repo

+

Mention .repo#3

+

.repo#3

+

some-user/.repo#3


@username


diff --git a/tests/extensions/magiclink/magiclink (shorthand).txt b/tests/extensions/magiclink/magiclink (shorthand).txt index 86a036be6..290d31c83 100644 --- a/tests/extensions/magiclink/magiclink (shorthand).txt +++ b/tests/extensions/magiclink/magiclink (shorthand).txt @@ -42,6 +42,14 @@ Commit gitlab:some-user/some-repo@3f6b07a8eeaa9d606115758d90f55fec565d4e2a Compare gitlab:some-user/some-repo@e2ed7e0b3973f3f9eb7a26b8ef7ae514eebfe0d2...90b6fb8711e75732f987982cc024e9bb0111beac +Mention @facelessuser/.repo + +Mention facelessuser/.repo#3 + +.repo#3 + +some-user/.repo#3 + --- @x:username diff --git a/tests/extensions/magiclink/magiclink.html b/tests/extensions/magiclink/magiclink.html index e20cb314e..ad87da827 100644 --- a/tests/extensions/magiclink/magiclink.html +++ b/tests/extensions/magiclink/magiclink.html @@ -113,10 +113,12 @@

These should be invalid

test@...........com

Repo Links

#49

+

.repo#49

!87

6a09fde

e2ed7e0...90b6fb8

fake-user/fake-repository#538

+

fake-user/.repo#49

fake-user/fake-repository!539

fake-user/fake-repository@594b25d

fake-user/fake-repository@e2ed7e0...90b6fb8

diff --git a/tests/extensions/magiclink/magiclink.txt b/tests/extensions/magiclink/magiclink.txt index a69efd6d8..8c7301a6c 100644 --- a/tests/extensions/magiclink/magiclink.txt +++ b/tests/extensions/magiclink/magiclink.txt @@ -227,6 +227,8 @@ test@...........com https://github.com/facelessuser/pymdown-extensions/issues/49 +https://github.com/facelessuser/.repo/issues/49 + https://github.com/facelessuser/pymdown-extensions/pull/87 https://github.com/facelessuser/pymdown-extensions/commit/6a09fde5c1cad66c660c3aa7792385c52c49e819 @@ -235,6 +237,8 @@ https://github.com/facelessuser/pymdown-extensions/compare/e2ed7e0b3973f3f9eb7a2 https://github.com/fake-user/fake-repository/issues/538 +https://github.com/fake-user/.repo/issues/49 + https://github.com/fake-user/fake-repository/pull/539 https://github.com/fake-user/fake-repository/commit/594b25d53798c30735da5a9be19c06cc94052a16