Remove get_and_resolve_toctree method (#19)
This commit is contained in:
@@ -65,21 +65,34 @@ class DocumentCollector:
|
|||||||
):
|
):
|
||||||
for child_docname in self.env.toctree_includes[docname]:
|
for child_docname in self.env.toctree_includes[docname]:
|
||||||
collect_from_toctree(child_docname)
|
collect_from_toctree(child_docname)
|
||||||
else:
|
# Try to use dependencies to find related documents
|
||||||
# Fallback: try to resolve and parse the toctree
|
elif (
|
||||||
toctree = self.env.get_and_resolve_toctree(docname, None)
|
hasattr(self.env, "dependencies")
|
||||||
if toctree:
|
and docname in self.env.dependencies
|
||||||
from docutils import nodes
|
):
|
||||||
|
# Extract the dependent documents from the dependencies dict
|
||||||
|
for child_docname in self.env.dependencies[docname]:
|
||||||
|
# Only add documents actually in the document set
|
||||||
|
if (
|
||||||
|
hasattr(self.env, "all_docs")
|
||||||
|
and child_docname in self.env.all_docs
|
||||||
|
):
|
||||||
|
collect_from_toctree(child_docname)
|
||||||
|
# Fallback to titles or other available references
|
||||||
|
elif hasattr(self.env, "titles") and hasattr(self.env, "all_docs"):
|
||||||
|
# Get all document names
|
||||||
|
all_docnames = list(self.env.all_docs.keys())
|
||||||
|
|
||||||
for node in list(toctree.findall(nodes.reference)):
|
# Look for documents that might be related (have similar paths)
|
||||||
if "refuri" in node.attributes:
|
current_prefix = "/".join(docname.split("/")[:-1])
|
||||||
refuri = node.attributes["refuri"]
|
if current_prefix:
|
||||||
if refuri and refuri.endswith(".html"):
|
for child_docname in all_docnames:
|
||||||
child_docname = refuri[:-5] # Remove .html
|
# Documents in the same directory might be related
|
||||||
if (
|
if (
|
||||||
child_docname != docname
|
child_docname.startswith(current_prefix)
|
||||||
): # Avoid circular references
|
and child_docname != docname
|
||||||
collect_from_toctree(child_docname)
|
):
|
||||||
|
collect_from_toctree(child_docname)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.debug(f"Could not get toctree for {docname}: {e}")
|
logger.debug(f"Could not get toctree for {docname}: {e}")
|
||||||
|
|
||||||
|
|||||||
@@ -129,9 +129,6 @@ class LLMSFullManager:
|
|||||||
|
|
||||||
if source_file.exists():
|
if source_file.exists():
|
||||||
docname_to_file[docname] = source_file
|
docname_to_file[docname] = source_file
|
||||||
logger.debug(
|
|
||||||
f"sphinx-llms-txt: Found source file for {docname} at {source_file}"
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
logger.warning(
|
logger.warning(
|
||||||
f"sphinx-llm-txt: Source file not found for: {docname}. Expected"
|
f"sphinx-llm-txt: Source file not found for: {docname}. Expected"
|
||||||
|
|||||||
Reference in New Issue
Block a user