diff --git a/docs/doxygen/CMakeLists.txt b/docs/doxygen/CMakeLists.txt
index 413be945b47..7c6c5bd0cb0 100644
--- a/docs/doxygen/CMakeLists.txt
+++ b/docs/doxygen/CMakeLists.txt
@@ -24,8 +24,8 @@ if (DOXYGEN_FOUND)
set (DOXYGEN_LAYOUT_FILE ${HDF5_DOXYGEN_DIR}/hdf5doxy_layout.xml)
set (DOXYGEN_HTML_HEADER ${HDF5_DOXYGEN_DIR}/hdf5_header.html)
set (DOXYGEN_HTML_FOOTER ${HDF5_DOXYGEN_DIR}/hdf5_footer.html)
- set (DOXYGEN_HTML_EXTRA_STYLESHEET "${HDF5_DOXYGEN_DIR}/hdf5doxy.css ${HDF5_DOXYGEN_DIR}/doxygen-awesome.css")
- set (DOXYGEN_HTML_EXTRA_FILES "${HDF5_DOXYGEN_DIR}/hdf5_navtree_hacks.js ${HDF5_DOXYGEN_DIR}/doxygen-awesome-tabs.js")
+ set (DOXYGEN_HTML_EXTRA_STYLESHEET "${HDF5_DOXYGEN_DIR}/doxygen-awesome.css ${HDF5_DOXYGEN_DIR}/hdf5doxy.css")
+ set (DOXYGEN_HTML_EXTRA_FILES "${HDF5_DOXYGEN_DIR}/doxygen-awesome-tabs.js")
set (DOXYGEN_TAG_FILE ${HDF5_BINARY_DIR}/hdf5.tag)
set (DOXYGEN_SERVER_BASED_SEARCH NO)
set (DOXYGEN_EXTERNAL_SEARCH NO)
diff --git a/docs/doxygen/hdf5_header.html b/docs/doxygen/hdf5_header.html
index 724b4155b83..1eec617561b 100644
--- a/docs/doxygen/hdf5_header.html
+++ b/docs/doxygen/hdf5_header.html
@@ -20,8 +20,6 @@
$mathjax
$extrastylesheet
-
-
diff --git a/docs/doxygen/hdf5_navtree_hacks.js b/docs/doxygen/hdf5_navtree_hacks.js
deleted file mode 100644
index 804701f7f6f..00000000000
--- a/docs/doxygen/hdf5_navtree_hacks.js
+++ /dev/null
@@ -1,246 +0,0 @@
-
-// generate a table of contents in the side-nav based on the h1/h2 tags of the current page.
-function generate_autotoc() {
- var headers = $("h1, h2");
- if(headers.length > 1) {
- var toc = $("#side-nav").append('
Table of contents ');
- toc = $("#nav-toc");
- var footer = $("#nav-path");
- var footerHeight = footer.height();
- toc = toc.append('');
- toc = toc.find('ul');
- var indices = new Array();
- indices[0] = 0;
- indices[1] = 0;
-
- var h1counts = $("h1").length;
- headers.each(function(i) {
- var current = $(this);
- var levelTag = current[0].tagName.charAt(1);
- if(h1counts==0)
- levelTag--;
- var cur_id = current.attr("id");
-
- indices[levelTag-1]+=1;
- var prefix = indices[0];
- if (levelTag >1) {
- prefix+="."+indices[1];
- }
-
- // Uncomment to add number prefixes
- // current.html(prefix + " " + current.html());
- for(var l = levelTag; l < 2; ++l){
- indices[l] = 0;
- }
-
- if(cur_id == undefined) {
- current.attr('id', 'title' + i);
- current.addClass('anchor');
- toc.append("" + current.text() + " ");
- } else {
- toc.append("" + current.text() + " ");
- }
- });
- resizeHeight();
- }
-}
-
-
-var global_navtree_object;
-
-// Overloaded to remove links to sections/subsections
-function getNode(o, po)
-{
- po.childrenVisited = true;
- var l = po.childrenData.length-1;
- for (var i in po.childrenData) {
- var nodeData = po.childrenData[i];
- if((!nodeData[1]) || (nodeData[1].indexOf('#')==-1)) // <- we added this line
- po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2], i==l);
- }
-}
-
-// Overloaded to adjust the size of the navtree wrt the toc
-function resizeHeight()
-{
- var header = $("#top");
- var sidenav = $("#side-nav");
- var content = $("#doc-content");
- var navtree = $("#nav-tree");
- var footer = $("#nav-path");
- var toc = $("#nav-toc");
-
- var headerHeight = header.outerHeight();
- var footerHeight = footer.outerHeight();
- var tocHeight = toc.height();
- var windowHeight = $(window).height() - headerHeight - footerHeight;
- content.css({height:windowHeight + "px"});
- navtree.css({height:(windowHeight-tocHeight) + "px"});
- sidenav.css({height:windowHeight + "px"});
-}
-
-// Overloaded to save the root node into global_navtree_object
-function initNavTree(toroot,relpath)
-{
- var o = new Object();
- global_navtree_object = o; // <- we added this line
- o.toroot = toroot;
- o.node = new Object();
- o.node.li = document.getElementById("nav-tree-contents");
- o.node.childrenData = NAVTREE;
- o.node.children = new Array();
- o.node.childrenUL = document.createElement("ul");
- o.node.getChildrenUL = function() { return o.node.childrenUL; };
- o.node.li.appendChild(o.node.childrenUL);
- o.node.depth = 0;
- o.node.relpath = relpath;
- o.node.expanded = false;
- o.node.isLast = true;
- o.node.plus_img = document.createElement("img");
- o.node.plus_img.src = relpath+"ftv2pnode.png";
- o.node.plus_img.width = 16;
- o.node.plus_img.height = 22;
-
- if (localStorageSupported()) {
- var navSync = $('#nav-sync');
- if (cachedLink()) {
- showSyncOff(navSync,relpath);
- navSync.removeClass('sync');
- } else {
- showSyncOn(navSync,relpath);
- }
- navSync.click(function(){ toggleSyncButton(relpath); });
- }
-
- navTo(o,toroot,window.location.hash,relpath);
-
- $(window).bind('hashchange', function(){
- if (window.location.hash && window.location.hash.length>1){
- var a;
- if ($(location).attr('hash')){
- var clslink=stripPath($(location).attr('pathname'))+':'+
- $(location).attr('hash').substring(1);
- a=$('.item a[class$="'+clslink+'"]');
- }
- if (a==null || !$(a).parent().parent().hasClass('selected')){
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- }
- var link=stripPath2($(location).attr('pathname'));
- navTo(o,link,$(location).attr('hash'),relpath);
- } else if (!animationInProgress) {
- $('#doc-content').scrollTop(0);
- $('.item').removeClass('selected');
- $('.item').removeAttr('id');
- navTo(o,toroot,window.location.hash,relpath);
- }
- })
-
- $(window).on("load", showRoot);
-}
-
-// return false if the node has no children at all, or has only section/subsection children
-function checkChildrenData(node) {
- if (!(typeof(node.childrenData)==='string')) {
- for (var i in node.childrenData) {
- var url = node.childrenData[i][1];
- if(url.indexOf("#")==-1)
- return true;
- }
- return false;
- }
- return (node.childrenData);
-}
-
-// Modified to:
-// 1 - remove the root node
-// 2 - remove the section/subsection children
-function createIndent(o,domNode,node,level)
-{
- var level=-2; // <- we replaced level=-1 by level=-2
- var n = node;
- while (n.parentNode) { level++; n=n.parentNode; }
- if (checkChildrenData(node)) { // <- we modified this line to use checkChildrenData(node) instead of node.childrenData
- var imgNode = document.createElement("span");
- imgNode.className = 'arrow';
- imgNode.style.paddingLeft=(16*level).toString()+'px';
- imgNode.innerHTML=arrowRight;
- node.plus_img = imgNode;
- node.expandToggle = document.createElement("a");
- node.expandToggle.href = "javascript:void(0)";
- node.expandToggle.onclick = function() {
- if (node.expanded) {
- $(node.getChildrenUL()).slideUp("fast");
- node.plus_img.innerHTML=arrowRight;
- node.expanded = false;
- } else {
- expandNode(o, node, false, false);
- }
- }
- node.expandToggle.appendChild(imgNode);
- domNode.appendChild(node.expandToggle);
- } else {
- var span = document.createElement("span");
- span.className = 'arrow';
- span.style.width = 16*(level+1)+'px';
- span.innerHTML = ' ';
- domNode.appendChild(span);
- }
-}
-
-// Overloaded to automatically expand the selected node
-function selectAndHighlight(hash,n)
-{
- var a;
- if (hash) {
- var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
- a=$('.item a[class$="'+link+'"]');
- }
- if (a && a.length) {
- a.parent().parent().addClass('selected');
- a.parent().parent().attr('id','selected');
- highlightAnchor();
- } else if (n) {
- $(n.itemDiv).addClass('selected');
- $(n.itemDiv).attr('id','selected');
- }
- if ($('#nav-tree-contents .item:first').hasClass('selected')) {
- $('#nav-sync').css('top','30px');
- } else {
- $('#nav-sync').css('top','5px');
- }
- expandNode(global_navtree_object, n, true, true); // <- we added this line
- showRoot();
-}
-
-
-$(document).ready(function() {
-
- generate_autotoc();
-
- (function (){ // wait until the first "selected" element has been created
- try {
-
- // this line will trigger an exception if there is no #selected element, i.e., before the tree structure is complete.
- document.getElementById("selected").className = "item selected";
-
- // ok, the default tree has been created, we can keep going...
-
- // expand the "Chapters" node
- if(window.location.href.indexOf('unsupported')==-1)
- expandNode(global_navtree_object, global_navtree_object.node.children[0].children[2], true, true);
- else
- expandNode(global_navtree_object, global_navtree_object.node.children[0].children[1], true, true);
-
- // Hide the root node "HDF5"
- $(document.getElementsByClassName('index.html')[0]).parent().parent().css({display:"none"});
-
- } catch (err) {
- setTimeout(arguments.callee, 10);
- }
- })();
-
- $(window).on("load", resizeHeight);
-});
diff --git a/docs/doxygen/hdf5doxy.css b/docs/doxygen/hdf5doxy.css
index 52d72077ebb..3ab7fdc870a 100644
--- a/docs/doxygen/hdf5doxy.css
+++ b/docs/doxygen/hdf5doxy.css
@@ -1,29 +1,19 @@
/**** Table of content in the side-nav ****/
/*
- * Collapse the navigation tree to zero height instead of removing it from the layout.
- * This allows the Doxygen scripts to correctly calculate the side-panel's width
- * and apply the proper 'margin-left' to the main content, preventing overlap.
+ * Completely hide the side-nav panel. It is only included so that a
+ * page outline panel can be generated.
*/
-#nav-tree {
- height: 0;
- overflow: hidden;
- padding: 0;
- margin: 0;
- border: none;
-}
-
-/* Make sure the side panel itself allows overflow */
#side-nav {
- overflow: visible; /* Don't clip the TOC */
- width: 245px; /* Set initial width (default is usually around 250px) */
- min-width: 200px; /* Prevent it from getting too small */
+ display: none;
}
-/* Ensure main content and header never go behind the side panel */
-#doc-content,
-#top {
- margin-left: 255px !important; /* 245px sidebar + 10px gap */
+/*
+ * Align the page navigation panel to the right hand side
+ */
+#page-nav {
+ margin-left: auto;
+ margin-right: 0;
}
/* Only reset margin on smaller screens */
@@ -38,7 +28,7 @@
@media screen and (min-width: 1200px) {
#doc-content,
#top {
- margin-left: 260px !important; /* Slightly wider gap for large screens */
+ margin-left: 10px !important; /* Slightly wider gap for large screens */
}
}
@@ -49,7 +39,7 @@ body {
/* Additional specificity - target the content container directly */
#doc-content > div {
- margin-left: 0; /* Reset any inherited margins */
+ margin-left: auto; /* Reset any inherited margins */
padding-left: 0; /* Reset any inherited padding */
}
@@ -135,64 +125,6 @@ body {
font-size: 0.9em !important; /* Smaller font size */
height: 24px !important; /* Match the container height */
}
-
- /* Make sure the side nav stays fixed position */
- #side-nav {
- position: fixed !important;
- left: 0 !important;
- top: 0 !important;
- height: 100vh !important;
- z-index: 100 !important;
- }
-}
-
-/* Style the TOC to fill the entire side panel with proper scrolling */
-div.toc {
- margin: 0;
- padding: 1em 0 0 0;
- width: 100%;
- height: calc(100vh - 2em); /* Fixed height to enable proper scrolling */
- float: none;
- position: relative;
- border-radius: 0px;
- border-style: none;
- overflow: auto; /* Both horizontal and vertical scrolling */
- box-sizing: border-box;
-}
-
-div.toc h3 {
- margin-left: 0.5em;
- margin-bottom: 0.2em;
-}
-
-/* Make sure nested lists also scroll properly */
-div.toc ul {
- margin: 0.2em 0 0.4em 0.5em;
- width: max-content; /* Allow content to determine width */
- min-width: 100%;
-}
-
-/* Ensure the TOC root container can expand */
-div.toc > ul {
- width: max-content;
- min-width: 100%;
-}
-
-/* Ensure TOC entries don't wrap and enable horizontal scrolling */
-div.toc li a {
- white-space: nowrap;
- display: inline-block; /* Changed from block to inline-block */
- width: auto; /* Let content determine width */
- min-width: 100%; /* Ensure it takes at least full container width */
-}
-
-/*
- * Prevent long TOC entries from wrapping.
- * This keeps each entry on a single line and makes the panel
- * horizontally scrollable if an entry is too wide.
- */
-#side-nav div.toc li a {
- white-space: nowrap;
}
span.cpp11,span.cpp14,span.cpp17 {
@@ -233,10 +165,6 @@ td.width20em p.endtd {
/* Style external links -- nav-tree is different */
-#nav-tree .label a {
- padding:2px 16px 2px 2px;
-}
-
a {
outline: none;
text-decoration: none;
@@ -287,3 +215,7 @@ div[style*="background:#FFDDDD"] a:hover {
.dynheader:hover {
text-decoration: underline;
}
+
+/* Hide footer and surrounding lines/space */
+li.footer { display: none; }
+div.navpath { display: none; }