@@ -11,7 +11,7 @@ def _is_hoverxref_configured(self, env):
11
11
version = env .config .hoverxref_version
12
12
return project and version
13
13
14
- def _inject_hoverxref_data (self , env , refnode , docname , labelid ):
14
+ def _inject_hoverxref_data (self , env , refnode , docname , docpath , labelid ):
15
15
refnode .replace_attr ('classes' , ['hoverxref' ])
16
16
17
17
project = env .config .hoverxref_project
@@ -20,9 +20,15 @@ def _inject_hoverxref_data(self, env, refnode, docname, labelid):
20
20
'data-project' : project ,
21
21
'data-version' : version ,
22
22
'data-doc' : docname ,
23
+ 'data-docpath' : docpath ,
23
24
'data-section' : labelid ,
24
25
}
25
26
27
+ def _get_docpath (self , builder , docname ):
28
+ docpath = builder .get_outfilename (docname )
29
+ docpath = docpath .replace (builder .outdir , '' )
30
+ return docpath
31
+
26
32
27
33
class HoverXRefPythonDomainMixin (HoverXRefBaseDomain ):
28
34
@@ -40,7 +46,9 @@ def resolve_xref(self, env, fromdocname, builder, type, target, node, contnode):
40
46
41
47
if self ._is_hoverxref_configured (env ):
42
48
docname , labelid = obj [0 ], name
43
- self ._inject_hoverxref_data (env , refnode , docname , labelid )
49
+ docpath = self ._get_docpath (builder , docname )
50
+
51
+ self ._inject_hoverxref_data (env , refnode , docname , docpath , labelid )
44
52
logger .info (
45
53
':ref: _hoverxref injected: fromdocname=%s %s' ,
46
54
fromdocname ,
@@ -81,7 +89,9 @@ def _resolve_ref_xref(self, env, fromdocname, builder, typ, target, node, contno
81
89
82
90
if self ._is_hoverxref_configured (env ) and (env .config .hoverxref_auto_ref or typ == 'hoverxref' ):
83
91
docname , labelid , _ = get_ref_xref_data (self , node , target )
84
- self ._inject_hoverxref_data (env , refnode , docname , labelid )
92
+ docpath = self ._get_docpath (builder , docname )
93
+
94
+ self ._inject_hoverxref_data (env , refnode , docname , docpath , labelid )
85
95
logger .info (
86
96
':ref: _hoverxref injected: fromdocname=%s %s' ,
87
97
fromdocname ,
@@ -97,7 +107,9 @@ def _resolve_obj_xref(self, env, fromdocname, builder, typ, target, node, contno
97
107
if typ in env .config .hoverxref_roles :
98
108
docname , labelid = get_ref_obj_data (self , node , typ , target )
99
109
if self ._is_hoverxref_configured (env ):
100
- self ._inject_hoverxref_data (env , refnode , docname , labelid )
110
+ docpath = self ._get_docpath (builder , docname )
111
+
112
+ self ._inject_hoverxref_data (env , refnode , docname , docpath , labelid )
101
113
logger .info (
102
114
':%s: _hoverxref injected: fromdocname=%s %s' ,
103
115
typ ,
0 commit comments