diff --git a/.github/workflows/install-mdbook/action.yml b/.github/workflows/install-mdbook/action.yml
index c3532615..7a1e5815 100644
--- a/.github/workflows/install-mdbook/action.yml
+++ b/.github/workflows/install-mdbook/action.yml
@@ -8,10 +8,7 @@ runs:
# The --locked flag is important for reproducible builds. It also
# avoids breakage due to skews between mdbook and mdbook-svgbob.
- name: Install mdbook
- # See https://github.com/google/comprehensive-rust/issues/1164.
- # We will revert to a released version of mdbook as soon as the
- # commit referenced here is released.
- run: cargo install --git https://github.com/rust-lang/mdbook/ --rev 09f222b mdbook
+ run: cargo install mdbook --locked --version 0.4.35
shell: bash
- name: Install mdbook-svgbob
diff --git a/theme/index.hbs b/theme/index.hbs
index 7b12439a..7706ae8d 100644
--- a/theme/index.hbs
+++ b/theme/index.hbs
@@ -5,7 +5,7 @@
{{ title }}
{{#if is_print }}
-
+
{{/if}}
{{#if base_url}}
@@ -17,7 +17,7 @@
-
+
{{#if favicon_svg}}
@@ -285,7 +285,7 @@
{{/previous}}
{{#next}}
-
+
{{/next}}
@@ -303,7 +303,7 @@
{{/previous}}
{{#next}}
-
+
{{/next}}
diff --git a/third_party/mdbook/book.js b/third_party/mdbook/book.js
index 3a3509ae..3c46f6af 100644
--- a/third_party/mdbook/book.js
+++ b/third_party/mdbook/book.js
@@ -468,7 +468,7 @@ function playground_text(playground, hidden = true) {
})();
(function sidebar() {
- var html = document.querySelector("html");
+ var body = document.querySelector("body");
var sidebar = document.getElementById("sidebar");
var sidebarLinks = document.querySelectorAll('#sidebar a');
var sidebarToggleButton = document.getElementById("sidebar-toggle");
@@ -476,8 +476,8 @@ function playground_text(playground, hidden = true) {
var firstContact = null;
function showSidebar() {
- html.classList.remove('sidebar-hidden')
- html.classList.add('sidebar-visible');
+ body.classList.remove('sidebar-hidden')
+ body.classList.add('sidebar-visible');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', 0);
});
@@ -498,8 +498,8 @@ function playground_text(playground, hidden = true) {
});
function hideSidebar() {
- html.classList.remove('sidebar-visible')
- html.classList.add('sidebar-hidden');
+ body.classList.remove('sidebar-visible')
+ body.classList.add('sidebar-hidden');
Array.from(sidebarLinks).forEach(function (link) {
link.setAttribute('tabIndex', -1);
});
@@ -510,14 +510,14 @@ function playground_text(playground, hidden = true) {
// Toggle sidebar
sidebarToggleButton.addEventListener('click', function sidebarToggle() {
- if (html.classList.contains("sidebar-hidden")) {
+ if (body.classList.contains("sidebar-hidden")) {
var current_width = parseInt(
document.documentElement.style.getPropertyValue('--sidebar-width'), 10);
if (current_width < 150) {
document.documentElement.style.setProperty('--sidebar-width', '150px');
}
showSidebar();
- } else if (html.classList.contains("sidebar-visible")) {
+ } else if (body.classList.contains("sidebar-visible")) {
hideSidebar();
} else {
if (getComputedStyle(sidebar)['transform'] === 'none') {
@@ -533,14 +533,14 @@ function playground_text(playground, hidden = true) {
function initResize(e) {
window.addEventListener('mousemove', resize, false);
window.addEventListener('mouseup', stopResize, false);
- html.classList.add('sidebar-resizing');
+ body.classList.add('sidebar-resizing');
}
function resize(e) {
var pos = (e.clientX - sidebar.offsetLeft);
if (pos < 20) {
hideSidebar();
} else {
- if (html.classList.contains("sidebar-hidden")) {
+ if (body.classList.contains("sidebar-hidden")) {
showSidebar();
}
pos = Math.min(pos, window.innerWidth - 100);
@@ -549,7 +549,7 @@ function playground_text(playground, hidden = true) {
}
//on mouseup remove windows functions mousemove & mouseup
function stopResize(e) {
- html.classList.remove('sidebar-resizing');
+ body.classList.remove('sidebar-resizing');
window.removeEventListener('mousemove', resize, false);
window.removeEventListener('mouseup', stopResize, false);
}
@@ -584,20 +584,35 @@ function playground_text(playground, hidden = true) {
document.addEventListener('keydown', function (e) {
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { return; }
if (window.search && window.search.hasFocus()) { return; }
+ var html = document.querySelector('html');
+ function next() {
+ var nextButton = document.querySelector('.nav-chapters.next');
+ if (nextButton) {
+ window.location.href = nextButton.href;
+ }
+ }
+ function prev() {
+ var previousButton = document.querySelector('.nav-chapters.previous');
+ if (previousButton) {
+ window.location.href = previousButton.href;
+ }
+ }
switch (e.key) {
case 'ArrowRight':
e.preventDefault();
- var nextButton = document.querySelector('.nav-chapters.next');
- if (nextButton) {
- window.location.href = nextButton.href;
+ if (html.dir == 'rtl') {
+ prev();
+ } else {
+ next();
}
break;
case 'ArrowLeft':
e.preventDefault();
- var previousButton = document.querySelector('.nav-chapters.previous');
- if (previousButton) {
- window.location.href = previousButton.href;
+ if (html.dir == 'rtl') {
+ next();
+ } else {
+ prev();
}
break;
}