8000 Merge pull request #10263 from nicoa/escape_base_uri_in_extlinks · sphinx-doc/sphinx@746df61 · GitHub
[go: up one dir, main page]

Skip to content

Commit 746df61

Browse files
authored
Merge pull request #10263 from nicoa/escape_base_uri_in_extlinks
escape base_uri in extlinks
2 parents 8a1830c + 81830cc commit 746df61

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sphinx/ext/extlinks.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"""
1919

2020
import re
21+
import sys
2122
import warnings
2223
from typing import Any, Dict, List, Tuple
2324

@@ -65,7 +66,13 @@ def check_uri(self, refnode: nodes.reference) -> None:
6566
title = refnode.astext()
6667

6768
for alias, (base_uri, _caption) in self.app.config.extlinks.items():
68-
uri_pattern = re.compile(base_uri.replace('%s', '(?P<value>.+)'))
69+
if sys.version_info < (3, 7):
70+
# Replace a leading backslash because re.escape() inserts a backslash before %
71+
# on python 3.6
72+
uri_pattern = re.compile(re.escape(base_uri).replace('\\%s', '(?P<value>.+)'))
73+
else:
74+
uri_pattern = re.compile(re.escape(base_uri).replace('%s', '(?P<value>.+)'))
75+
6976
match = uri_pattern.match(uri)
7077
if match and match.groupdict().get('value'):
7178
# build a replacement suggestion

0 commit comments

Comments
 (0)
0