diff options
author | Georg Brandl <georg@python.org> | 2013-09-16 10:34:29 +0200 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2013-09-16 10:34:29 +0200 |
commit | 58acc275e53aad66555680c4bddc2e8275e16969 (patch) | |
tree | 853f11e608e5ae763a7a68f2695e1b5eb1e5434b /sphinx | |
parent | 21b6a93b79327bb8b6f9607111ba019a5aa74881 (diff) | |
download | sphinx-58acc275e53aad66555680c4bddc2e8275e16969.tar.gz |
Fixes #1204: use the correct relative path referring to local intersphinx targets.
Diffstat (limited to 'sphinx')
-rw-r--r-- | sphinx/ext/intersphinx.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sphinx/ext/intersphinx.py b/sphinx/ext/intersphinx.py index bf528e72..193562b2 100644 --- a/sphinx/ext/intersphinx.py +++ b/sphinx/ext/intersphinx.py @@ -33,6 +33,7 @@ from os import path import re from docutils import nodes +from docutils.utils import relative_path from sphinx.locale import _ from sphinx.builders.html import INVENTORY_FILENAME @@ -236,6 +237,9 @@ def missing_reference(app, env, node, contnode): if objtype not in inventory or target not in inventory[objtype]: continue proj, version, uri, dispname = inventory[objtype][target] + if '://' not in uri and node.get('refdoc'): + # get correct path in case of subdirectories + uri = path.join(relative_path(node['refdoc'], env.srcdir), uri) newnode = nodes.reference('', '', internal=False, refuri=uri, reftitle=_('(in %s v%s)') % (proj, version)) if node.get('refexplicit'): |