summaryrefslogtreecommitdiff
path: root/sphinx/ext/extlinks.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2022-02-14 03:03:40 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2022-02-14 03:03:40 +0900
commit8b23f6db12d9fcdb6e1ca2015ea32e3e2e1fbdb6 (patch)
tree45c07e0a74fcace45cfb43d7491bab9a98f88087 /sphinx/ext/extlinks.py
parentd7c6fa853ce433640331deab837b3a0c0edb3c9d (diff)
parent07110b7557a552ecfe702bdd6a2d2f9685cb1af9 (diff)
downloadsphinx-git-8b23f6db12d9fcdb6e1ca2015ea32e3e2e1fbdb6.tar.gz
Merge commit '07110b7557a552ecfe702bdd6a2d2f9685cb1af9'
Diffstat (limited to 'sphinx/ext/extlinks.py')
-rw-r--r--sphinx/ext/extlinks.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/sphinx/ext/extlinks.py b/sphinx/ext/extlinks.py
index 096c6e21a..dae407cfb 100644
--- a/sphinx/ext/extlinks.py
+++ b/sphinx/ext/extlinks.py
@@ -36,7 +36,7 @@ import sphinx
from sphinx.application import Sphinx
from sphinx.locale import __
from sphinx.transforms.post_transforms import SphinxPostTransform
-from sphinx.util import logging
+from sphinx.util import logging, rst
from sphinx.util.nodes import split_explicit_title
from sphinx.util.typing import RoleFunction
@@ -65,6 +65,7 @@ class ExternalLinksChecker(SphinxPostTransform):
return
uri = refnode['refuri']
+ title = refnode.astext()
for alias, (base_uri, _caption) in self.app.config.extlinks.items():
uri_pattern = re.compile(base_uri.replace('%s', '(?P<value>.+)'))
@@ -73,7 +74,11 @@ class ExternalLinksChecker(SphinxPostTransform):
# build a replacement suggestion
msg = __('hardcoded link %r could be replaced by an extlink '
'(try using %r instead)')
- replacement = f":{alias}:`{match.groupdict().get('value')}`"
+ value = match.groupdict().get('value')
+ if uri != title:
+ replacement = f":{alias}:`{rst.escape(title)} <{value}>`"
+ else:
+ replacement = f":{alias}:`{value}`"
logger.warning(msg, uri, replacement, location=refnode)