Merge branch '3.x'

This commit is contained in:
Takeshi KOMIYA
2021-03-20 23:25:57 +09:00
3 changed files with 16 additions and 9 deletions

10
CHANGES
View File

@@ -123,7 +123,7 @@ Bugs fixed
Testing Testing
-------- --------
Release 3.5.3 (in development) Release 3.5.4 (in development)
============================== ==============================
Dependencies Dependencies
@@ -144,6 +144,14 @@ Bugs fixed
Testing Testing
-------- --------
Release 3.5.3 (released Mar 20, 2021)
=====================================
Features added
--------------
* #8959: using UNIX path separator in image directive confuses Sphinx on Windows
Release 3.5.2 (released Mar 06, 2021) Release 3.5.2 (released Mar 06, 2021)
===================================== =====================================

View File

@@ -10,7 +10,6 @@
import os import os
import pickle import pickle
import posixpath
from collections import defaultdict from collections import defaultdict
from copy import copy from copy import copy
from datetime import datetime from datetime import datetime
@@ -34,6 +33,7 @@ from sphinx.util import DownloadFiles, FilenameUniqDict, logging
from sphinx.util.docutils import LoggingReporter from sphinx.util.docutils import LoggingReporter
from sphinx.util.i18n import CatalogRepository, docname_to_domain from sphinx.util.i18n import CatalogRepository, docname_to_domain
from sphinx.util.nodes import is_translatable from sphinx.util.nodes import is_translatable
from sphinx.util.osutil import canon_path, os_path
if TYPE_CHECKING: if TYPE_CHECKING:
from sphinx.application import Sphinx from sphinx.application import Sphinx
@@ -335,6 +335,7 @@ class BuildEnvironment:
source dir, while relative filenames are relative to the dir of the source dir, while relative filenames are relative to the dir of the
containing document. containing document.
""" """
filename = os_path(filename)
if filename.startswith('/') or filename.startswith(os.sep): if filename.startswith('/') or filename.startswith(os.sep):
rel_fn = filename[1:] rel_fn = filename[1:]
else: else:
@@ -342,7 +343,7 @@ class BuildEnvironment:
base=None)) base=None))
rel_fn = path.join(docdir, filename) rel_fn = path.join(docdir, filename)
return (posixpath.normpath(rel_fn), return (canon_path(path.normpath(rel_fn)),
path.normpath(path.join(self.srcdir, rel_fn))) path.normpath(path.join(self.srcdir, rel_fn)))
@property @property

View File

@@ -16,7 +16,6 @@ import pytest
from docutils import nodes from docutils import nodes
from sphinx.errors import SphinxError from sphinx.errors import SphinxError
from sphinx.testing.path import path
def request_session_head(url, **kwargs): def request_session_head(url, **kwargs):
@@ -137,17 +136,16 @@ def test_image_glob(app, status, warning):
doctree = app.env.get_doctree('subdir/index') doctree = app.env.get_doctree('subdir/index')
assert isinstance(doctree[0][1], nodes.image) assert isinstance(doctree[0][1], nodes.image)
sub = path('subdir') assert doctree[0][1]['candidates'] == {'*': 'subdir/rimg.png'}
assert doctree[0][1]['candidates'] == {'*': sub / 'rimg.png'} assert doctree[0][1]['uri'] == 'subdir/rimg.png'
assert doctree[0][1]['uri'] == sub / 'rimg.png'
assert isinstance(doctree[0][2], nodes.image) assert isinstance(doctree[0][2], nodes.image)
assert doctree[0][2]['candidates'] == {'application/pdf': 'subdir/svgimg.pdf', assert doctree[0][2]['candidates'] == {'application/pdf': 'subdir/svgimg.pdf',
'image/svg+xml': 'subdir/svgimg.svg'} 'image/svg+xml': 'subdir/svgimg.svg'}
assert doctree[0][2]['uri'] == sub / 'svgimg.*' assert doctree[0][2]['uri'] == 'subdir/svgimg.*'
assert isinstance(doctree[0][3], nodes.figure) assert isinstance(doctree[0][3], nodes.figure)
assert isinstance(doctree[0][3][0], nodes.image) assert isinstance(doctree[0][3][0], nodes.image)
assert doctree[0][3][0]['candidates'] == {'application/pdf': 'subdir/svgimg.pdf', assert doctree[0][3][0]['candidates'] == {'application/pdf': 'subdir/svgimg.pdf',
'image/svg+xml': 'subdir/svgimg.svg'} 'image/svg+xml': 'subdir/svgimg.svg'}
assert doctree[0][3][0]['uri'] == sub / 'svgimg.*' assert doctree[0][3][0]['uri'] == 'subdir/svgimg.*'