From: Christian Bayle <bayle@debian.org>
Date: Fri, 16 May 2025 23:06:54 +0200
Subject: Allow offline doc

Forwarded: not-needed
---
 docs/conf.py                     |  3 ++-
 docs/user_guide/linking_toc.md   |  2 +-
 src/rocm_docs/data/projects.yaml |  8 ++++++--
 src/rocm_docs/projects.py        |  6 ++++--
 src/rocm_docs/theme.py           | 16 +++++++++++-----
 5 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/docs/conf.py b/docs/conf.py
index fd91b5b..ab7d245 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -11,7 +11,8 @@ https://rocm.docs.amd.com/projects/rocm-docs-core/en/latest/
 # Disable fetching projects.yaml, it would be the same as the local one anyway
 # except if a PR modifies it. We want to test with its version in that case
 external_projects_remote_repository = ""
-external_projects = ["hipify", "python", "rocm-docs-core", "rocm"]
+#external_projects = ["hipify", "python", "rocm-docs-core", "rocm"]
+external_projects = ["python", "rocm-docs-core"]
 external_projects_current_project = "rocm-docs-core"
 
 setting_all_article_info = True
diff --git a/docs/user_guide/linking_toc.md b/docs/user_guide/linking_toc.md
index 79dd396..b1714e0 100644
--- a/docs/user_guide/linking_toc.md
+++ b/docs/user_guide/linking_toc.md
@@ -19,7 +19,7 @@ based on Intersphinx mapping
 
 ### Example
 
-```in
+```yaml
     - url: "{url}/tree/{branch}"
     - url: ${project:python}
     - url: ${project:rocm-docs-core}
diff --git a/src/rocm_docs/data/projects.yaml b/src/rocm_docs/data/projects.yaml
index 4fe22a8..1852286 100644
--- a/src/rocm_docs/data/projects.yaml
+++ b/src/rocm_docs/data/projects.yaml
@@ -52,7 +52,9 @@ projects:
   omnitrace:
     target: https://rocm.docs.amd.com/projects/omnitrace/en/${version}
     development_branch: amd-staging
-  python: https://docs.python.org/3/
+  python:
+    target: https://docs.python.org/3/
+    inventory: /usr/share/doc/python3/html/objects.inv
   rccl: https://rocm.docs.amd.com/projects/rccl/en/${version}
   rdc:
     target: https://rocm.docs.amd.com/projects/rdc/en/${version}
@@ -78,7 +80,9 @@ projects:
     development_branch: develop
   rocjpeg: https://rocm.docs.amd.com/projects/rocJPEG/en/${version}
   rocm: https://rocm.docs.amd.com/en/${version}
-  rocm-docs-core: https://rocm.docs.amd.com/projects/rocm-docs-core/en/${version}
+  rocm-docs-core:
+    target: https://rocm.docs.amd.com/projects/rocm-docs-core/en/${version}
+    inventory: ../_build/html/objects.inv
   rocm-ds:
     target: https://rocm.docs.amd.com/projects/rocm-ds/en/${version}
     development_branch: develop
diff --git a/src/rocm_docs/projects.py b/src/rocm_docs/projects.py
index 58914a9..7aff032 100644
--- a/src/rocm_docs/projects.py
+++ b/src/rocm_docs/projects.py
@@ -342,11 +342,13 @@ def _update_theme_configs(
     app: Sphinx, current_project: _Project | None, current_branch: str
 ) -> None:
     """Update configurations for use in theme.py"""
-    latest_version = requests.get(
+    if latest_version := os.getenv('latest_version') is None:
+       latest_version = requests.get(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/latest_version.txt"
     ).text.strip("\r\n")
     latest_version_string = f"docs-{latest_version}"
-    release_candidate = requests.get(
+    if release_candidate := os.getenv('release_candidate') is None:
+       release_candidate = requests.get(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/release_candidate.txt"
     ).text.strip("\r\n")
     release_candidate_string = f"docs-{release_candidate}"
diff --git a/src/rocm_docs/theme.py b/src/rocm_docs/theme.py
index 5db145a..a0d3e37 100644
--- a/src/rocm_docs/theme.py
+++ b/src/rocm_docs/theme.py
@@ -14,6 +14,7 @@ from pydata_sphinx_theme.utils import (  # type: ignore[import-untyped]
 from sphinx.application import Sphinx
 
 from rocm_docs import util
+import os
 
 logger = sphinx.util.logging.getLogger(__name__)
 
@@ -48,19 +49,22 @@ def _add_custom_context(
     context: dict[str, str],
     doctree: object,  # noqa: ARG001
 ) -> None:
-    header_latest_version = _get_version_from_url(
+    if header_latest_version := os.getenv('latest_version') is None:
+       header_latest_version = _get_version_from_url(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/latest_version.txt"
     )
     context["header_latest_version"] = header_latest_version
 
-    header_release_candidate_version = _get_version_from_url(
+    if header_release_candidate_version := os.getenv('release_candidate') is None:
+       header_release_candidate_version = _get_version_from_url(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/release_candidate.txt"
     )
     context["header_release_candidate_version"] = (
         header_release_candidate_version
     )
 
-    google_site_verification_content = _get_version_from_url(
+    if google_site_verification_content := os.getenv('google_site_verification') is None:
+       google_site_verification_content = _get_version_from_url(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/google_site_verification.txt"
     )
     context["google_site_verification_content"] = (
@@ -158,11 +162,13 @@ def _update_theme_options(app: Sphinx) -> None:
             0, "components/left-side-menu"
         )
 
-    header_latest_version = _get_version_from_url(
+    if header_latest_version := os.getenv('latest_version') is None:
+       header_latest_version = _get_version_from_url(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/latest_version.txt"
     )
 
-    header_release_candidate_version = _get_version_from_url(
+    if header_release_candidate_version := os.getenv('release_candidate') is None:
+       header_release_candidate_version = _get_version_from_url(
         "https://raw.githubusercontent.com/ROCm/rocm-docs-core/data/release_candidate.txt"
     )
 
