Unnamed repository; edit this file 'description' to name the repository.
book: Copy over index.hbs from mdbook 0.4.43
0.4.41 introduced some breaking changes for those using custom themes so we need to re-vendor the file. This file is taken from mdbook 0.4.43: mdbook init --theme In a tmp directory, and then a reset of the line that adds Colibri as a selectable theme.
Michael Davis 2024-11-26
parent cbbeca6 · commit 436855a
-rw-r--r--book/theme/index.hbs55
1 files changed, 18 insertions, 37 deletions
diff --git a/book/theme/index.hbs b/book/theme/index.hbs
index 0a0bc550..0a46ac64 100644
--- a/book/theme/index.hbs
+++ b/book/theme/index.hbs
@@ -1,5 +1,5 @@
<!DOCTYPE HTML>
-<html lang="{{ language }}" class="{{ default_theme }}" dir="{{ text_direction }}">
+<html lang="{{ language }}" class="{{ default_theme }} sidebar-visible" dir="{{ text_direction }}">
<head>
<!-- Book generated using mdBook -->
<meta charset="UTF-8">
@@ -52,15 +52,17 @@
<!-- MathJax -->
<script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
{{/if}}
- </head>
- <body class="sidebar-visible no-js">
- <div id="body-container">
+
<!-- Provide site root to javascript -->
<script>
var path_to_root = "{{ path_to_root }}";
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}";
</script>
-
+ <!-- Start loading toc.js asap -->
+ <script src="{{ path_to_root }}toc.js"></script>
+ </head>
+ <body>
+ <div id="body-container">
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script>
try {
@@ -82,19 +84,16 @@
var theme;
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
- var html = document.querySelector('html');
+ const html = document.documentElement;
html.classList.remove('{{ default_theme }}')
html.classList.add(theme);
- var body = document.querySelector('body');
- body.classList.remove('no-js')
- body.classList.add('js');
+ html.classList.add("js");
</script>
<input type="checkbox" id="sidebar-toggle-anchor" class="hidden">
<!-- Hide / unhide sidebar before it is displayed -->
<script>
- var body = document.querySelector('body');
var sidebar = null;
var sidebar_toggle = document.getElementById("sidebar-toggle-anchor");
if (document.body.clientWidth >= 1080) {
@@ -104,39 +103,21 @@
sidebar = 'hidden';
}
sidebar_toggle.checked = sidebar === 'visible';
- body.classList.remove('sidebar-visible');
- body.classList.add("sidebar-" + sidebar);
+ html.classList.remove('sidebar-visible');
+ html.classList.add("sidebar-" + sidebar);
</script>
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
- <div class="sidebar-scrollbox">
- {{#toc}}{{/toc}}
+ <!-- populated by js -->
+ <mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox>
+ <noscript>
+ <iframe class="sidebar-iframe-outer" src="{{ path_to_root }}toc.html"></iframe>
+ </noscript>
+ <div id="sidebar-resize-handle" class="sidebar-resize-handle">
+ <div class="sidebar-resize-indicator"></div>
</div>
- <div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
</nav>
- <!-- Track and set sidebar scroll position -->
- <script>
- var sidebarScrollbox = document.querySelector('#sidebar .sidebar-scrollbox');
- sidebarScrollbox.addEventListener('click', function(e) {
- if (e.target.tagName === 'A') {
- sessionStorage.setItem('sidebar-scroll', sidebarScrollbox.scrollTop);
- }
- }, { passive: true });
- var sidebarScrollTop = sessionStorage.getItem('sidebar-scroll');
- sessionStorage.removeItem('sidebar-scroll');
- if (sidebarScrollTop) {
- // preserve sidebar scroll position when navigating via links within sidebar
- sidebarScrollbox.scrollTop = sidebarScrollTop;
- } else {
- // scroll sidebar to current active section when navigating via "next/previous chapter" buttons
- var activeSection = document.querySelector('#sidebar .active');
- if (activeSection) {
- activeSection.scrollIntoView({ block: 'center' });
- }
- }
- </script>
-
<div id="page-wrapper" class="page-wrapper">
<div class="page">