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