diff --git a/CHANGES.rst b/CHANGES.rst
index d2f1b340..e8e88209 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -5,6 +5,8 @@ CHANGES
Unreleased
----------
+- Made driver projects use a standalone primary navigation
+- Removed outmoded database drivers section
2026/01/14 0.47.0
-----------------
diff --git a/src/crate/theme/rtd/sidebartoc.py b/src/crate/theme/rtd/sidebartoc.py
index 29218984..44c5bff4 100644
--- a/src/crate/theme/rtd/sidebartoc.py
+++ b/src/crate/theme/rtd/sidebartoc.py
@@ -114,6 +114,15 @@ def _get_toctree(maxdepth=-1, titles_only=True, collapse=False):
parts.append('')
return ''.join(parts)
+ # Driver projects use a standalone primary navigation
+ if project in ['CrateDB JDBC', 'CrateDB Npgsql', 'CrateDB DBAL', 'CrateDB PDO', 'CrateDB Python', 'SQLAlchemy Dialect']:
+ current_class = ' class="current"' if pagename == master_doc else ''
+ parts.append(f'
')
+ parts.append(f'Documentation')
+ parts.append(_get_toctree())
+ parts.append('')
+ parts.append('All database drivers')
+ return ''.join(parts)
# Start CrateDB docs TOC with a Search box
parts.append('')
@@ -150,39 +159,10 @@ def _get_toctree(maxdepth=-1, titles_only=True, collapse=False):
builder.add_project_nav_item('CrateDB: Crash CLI', 'CrateDB CLI', '/docs/crate/crash/')
builder.add_project_nav_item('CrateDB Cloud: Croud CLI', 'Cloud CLI', '/docs/cloud/cli/')
- # Add all Driver projects
- # The must be inside the same - for CSS sibling selectors to work
- _DRIVER_CONFIGS = [
- ('CrateDB JDBC', 'JDBC', '/docs/jdbc/'),
- ('CrateDB DBAL', 'PHP DBAL', '/docs/dbal/'),
- ('CrateDB PDO', 'PHP PDO', '/docs/pdo/'),
- ('CrateDB Python', 'Python', '/docs/python/'),
- ('SQLAlchemy Dialect', 'SQLAlchemy', '/docs/sqlalchemy-cratedb/'),
- ]
- driver_projects = [config[0] for config in _DRIVER_CONFIGS]
- show_drivers = project in driver_projects or (project == 'CrateDB: Guide' and pagename.startswith('connect'))
-
- # Use data attribute to mark Database Drivers for auto-expansion
- driver_marker = ' data-auto-expand="true"' if show_drivers else ''
- # Add current class when viewing a driver page to make it bold
- driver_class = 'current' if show_drivers else 'navleft-item'
- driver_link_class = ' class="current-active"' if show_drivers else ''
- parts.append(f'
- ')
- parts.append(f'Database Drivers')
- # Furo will add has-children class and icon structure when it detects the
- parts.append('')
- if show_drivers:
- for proj_name, display_name, url in _DRIVER_CONFIGS:
- builder.add_project_nav_item(proj_name, display_name, url)
- parts.append('
')
- parts.append('
')
-
-
# Add Support and Community links section after a border
parts.append('- Support
')
parts.append('- Community
')
-
# Other internal docs projects only included in special builds
builder.add_project_nav_item('CrateDB documentation theme', 'Documentation theme', '', border_top=True, public_docs=False)
builder.add_project_nav_item('Doing Docs', 'Doing Docs at CrateDB', '', public_docs=False)