diff --git a/docs/app/reflex_docs/templates/docpage/docpage.py b/docs/app/reflex_docs/templates/docpage/docpage.py index f3cef4eb9eb..f1d91fbc84c 100644 --- a/docs/app/reflex_docs/templates/docpage/docpage.py +++ b/docs/app/reflex_docs/templates/docpage/docpage.py @@ -692,8 +692,8 @@ def breadcrumb(path: str, nav_sidebar: rx.Component, doc_content: str | None = N docs_sidebar_drawer, ) - # Split the path into segments, removing 'docs'. - segments = [segment for segment in path.split("/") if segment and segment != "docs"] + # Split the path into non-empty segments. + segments = [segment for segment in path.split("/") if segment] # Initialize an empty list to store the breadcrumbs and their separators breadcrumbs = [] diff --git a/docs/app/tests/test_breadcrumbs.py b/docs/app/tests/test_breadcrumbs.py index fa5e66eb0d8..ee7208fa0f3 100644 --- a/docs/app/tests/test_breadcrumbs.py +++ b/docs/app/tests/test_breadcrumbs.py @@ -28,6 +28,17 @@ def test_enterprise_parent_breadcrumb_uses_overview_route(monkeypatch): assert 'to:"/enterprise/ag-grid/pivot-mode/"' in rendered +def test_breadcrumb_keeps_docs_segment_when_present_in_path(): + """Every non-empty path segment should produce a crumb, including 'docs'.""" + from reflex_docs.templates.docpage.docpage import breadcrumb + + rendered = str(breadcrumb("/docs/ai/integrations/", rx.box())) + + assert 'to:"/docs"' in rendered + assert 'to:"/docs/ai"' in rendered + assert 'to:"/docs/ai/integrations"' in rendered + + def test_missing_parent_breadcrumb_is_not_clickable(monkeypatch): """Breadcrumb segments without a real route should not be clickable links.""" docpage_module = importlib.import_module("reflex_docs.templates.docpage.docpage")