Skip to content

Commit 85eeab6

Browse files
committed
Fix references when using DIRHTML builder
1 parent 721adfc commit 85eeab6

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/sphinx_codeautolink/extension/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ def generate_backref_tables(self, app, doctree, docname):
268268
visitor = CodeRefsVisitor(
269269
doctree,
270270
code_refs=self.code_refs,
271+
builder=app.builder.name,
271272
warn_no_backreference=self.warn_no_backreference,
272273
)
273274
doctree.walk(visitor)

src/sphinx_codeautolink/extension/backref.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Backreference tables implementation."""
22

33
from dataclasses import dataclass
4+
from pathlib import Path
45

56
from docutils import nodes
67

@@ -62,11 +63,13 @@ def __init__(
6263
self,
6364
*args,
6465
code_refs: dict[str, list[CodeExample]],
66+
builder : str,
6567
warn_no_backreference: bool = False,
6668
**kwargs,
6769
) -> None:
6870
super().__init__(*args, **kwargs)
6971
self.code_refs = code_refs
72+
self.builder = builder
7073
self.warn_no_backreference = warn_no_backreference
7174

7275
def unknown_departure(self, node) -> None:
@@ -79,7 +82,10 @@ def unknown_visit(self, node) -> None:
7982

8083
items = []
8184
for ref in self.code_refs.get(node.ref, []):
82-
link = ref.document + ".html"
85+
if self.builder == "dirhtml" and Path(ref.document).name != "index":
86+
link = ref.document + "/index.html"
87+
else:
88+
link = ref.document + ".html"
8389
if ref.ref_id is not None:
8490
link += f"#{ref.ref_id}"
8591
items.append((link, " / ".join(ref.headings)))

0 commit comments

Comments
 (0)