Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't display 'replaceable hardcoded link' when link has a slash #10137

Merged
merged 2 commits into from Oct 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 5 additions & 1 deletion sphinx/ext/extlinks.py
Expand Up @@ -72,7 +72,11 @@ def check_uri(self, refnode: nodes.reference) -> None:
uri_pattern = re.compile(re.escape(base_uri).replace('%s', '(?P<value>.+)'))

match = uri_pattern.match(uri)
if match and match.groupdict().get('value'):
if (
match and
match.groupdict().get('value') and
'/' not in match.groupdict()['value']
):
# build a replacement suggestion
msg = __('hardcoded link %r could be replaced by an extlink '
'(try using %r instead)')
Expand Down
Expand Up @@ -17,6 +17,8 @@ https://github.com/octocat

`replaceable link`_

`non replaceable link <https://github.com/sphinx-doc/sphinx/pulls>`_

.. hyperlinks

.. _replaceable link: https://github.com/octocat
1 change: 1 addition & 0 deletions tests/test_ext_extlinks.py
Expand Up @@ -28,6 +28,7 @@ def test_all_replacements_suggested_if_multiple_replacements_possible(app, warni
app.build()
warning_output = warning.getvalue()
# there should be six warnings for replaceable URLs, three pairs per link
assert warning_output.count("WARNING: hardcoded link") == 6
message = (
"index.rst:%d: WARNING: hardcoded link 'https://github.com/octocat' "
"could be replaced by an extlink (try using '%s' instead)"
Expand Down