|
52 | 52 | <!-- MathJax --> |
53 | 53 | <script async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> |
54 | 54 | {{/if}} |
55 | | - </head> |
56 | | - <body> |
57 | | - <div id="body-container"> |
58 | | - <!-- Provide site root to javascript --> |
| 55 | + |
| 56 | + <!-- サイトルートを JavaScript に渡す --> |
59 | 57 | <script> |
60 | 58 | var path_to_root = "{{ path_to_root }}"; |
61 | 59 | var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "{{ preferred_dark_theme }}" : "{{ default_theme }}"; |
62 | 60 | </script> |
| 61 | + <!-- サイドバーの生成に必要な toc.js を早期に読み込む --> |
| 62 | + <script src="{{ path_to_root }}toc.js"></script> |
| 63 | + </head> |
| 64 | + <body> |
| 65 | + <div id="body-container"> |
63 | 66 |
|
64 | 67 | <!-- Work around some values being stored in localStorage wrapped in quotes --> |
65 | 68 | <script> |
|
107 | 110 |
|
108 | 111 | <nav id="sidebar" class="sidebar" aria-label="Table of contents"> |
109 | 112 | <!-- populated by js --> |
110 | | - <div class="sidebar-scrollbox"></div> |
| 113 | + {{!-- mdBook 0.4.42 ではサイドバー生成用のカスタム要素が導入された --}} |
| 114 | + <mdbook-sidebar-scrollbox class="sidebar-scrollbox"></mdbook-sidebar-scrollbox> |
111 | 115 | <noscript> |
112 | 116 | <iframe class="sidebar-iframe-outer" src="{{ path_to_root }}toc.html"></iframe> |
113 | 117 | </noscript> |
114 | 118 | <div id="sidebar-resize-handle" class="sidebar-resize-handle"> |
115 | 119 | <div class="sidebar-resize-indicator"></div> |
116 | 120 | </div> |
117 | 121 | </nav> |
118 | | - |
119 | | - <script async src="{{ path_to_root }}toc.js"></script> |
120 | | - {{!-- toc.js がサイドバーの内容とスクロール位置を復元する --}} |
121 | | - |
122 | | - <script> |
123 | | - // toc.js が非同期にサイドバーを構築するため、 |
124 | | - // 目次の折りたたみボタンに手動でイベントを付与する |
125 | | - window.addEventListener('load', function () { |
126 | | - document.querySelectorAll('#sidebar a.toggle').forEach(function (el) { |
127 | | - // クリックされた章の展開状態を切り替える |
128 | | - el.addEventListener('click', function (ev) { |
129 | | - ev.currentTarget.parentElement.classList.toggle('expanded'); |
130 | | - }); |
131 | | - }); |
132 | | -
|
133 | | - // 現在表示しているページを含む章をすべて展開し、 |
134 | | - // 子ページが初期状態から見えるようにする |
135 | | - var current = document.querySelector('#sidebar a.active'); |
136 | | - // active クラスはリンク要素に付与されるため、最初に親 <li> を取得する |
137 | | - current = current && current.closest('li'); |
138 | | - while (current) { |
139 | | - current.classList.add('expanded'); |
140 | | - // 親の <li> 要素へ登っていく |
141 | | - current = current.parentElement && current.parentElement.closest('li'); |
142 | | - } |
143 | | - }); |
144 | | - </script> |
| 122 | + {{!-- toc.js 内で折りたたみのイベント登録まで行うため、追加のスクリプトは不要 --}} |
145 | 123 |
|
146 | 124 | <div id="page-wrapper" class="page-wrapper"> |
147 | 125 |
|
|
0 commit comments