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 - -
Help us improve by taking our short survey: https://www.hdfgroup.org/website-survey/
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(''); - 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; }