112 |
113 |
114 | {{> header}}
115 |
116 |
159 |
160 | {{#if search_enabled}}
161 |
171 | {{/if}}
172 |
173 |
174 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 | {{{ content }}}
239 |
240 |
241 |
257 |
258 |
259 |
260 |
273 |
274 |
275 |
276 | {{#if livereload}}
277 |
278 |
291 | {{/if}}
292 |
293 | {{#if google_analytics}}
294 |
295 |
310 | {{/if}}
311 |
312 | {{#if playground_line_numbers}}
313 |
316 | {{/if}}
317 |
318 | {{#if playground_copyable}}
319 |
322 | {{/if}}
323 |
324 | {{#if playground_js}}
325 |
326 |
327 |
328 |
329 |
330 | {{/if}}
331 |
332 | {{#if search_js}}
333 |
334 |
335 |
336 | {{/if}}
337 |
338 |
339 |
340 |
341 |
342 |
343 | {{#each additional_js}}
344 |
345 | {{/each}}
346 |
347 | {{#if is_print}}
348 | {{#if mathjax_support}}
349 |
356 | {{else}}
357 |
362 | {{/if}}
363 | {{/if}}
364 |
365 |
366 |
367 |
--------------------------------------------------------------------------------
/theme/pagetoc.css:
--------------------------------------------------------------------------------
1 | /* src: https://github.com/JorelAli/mdBook-pagetoc */
2 |
3 | @media only screen and (max-width:1439px) {
4 | .sidetoc {
5 | display: none;
6 | }
7 | }
8 |
9 | @media only screen and (min-width:1440px) {
10 | main {
11 | position: relative;
12 | }
13 | .sidetoc {
14 | margin-left: auto;
15 | margin-right: auto;
16 | /* left: calc(90% + (var(--content-min-width))/4 - 110px); */
17 | left: 101%;
18 | position: absolute;
19 | font-size: var(--pagetoc-fontsize);
20 | }
21 | .pagetoc {
22 | position: fixed;
23 | width: var(--pagetoc-width);
24 | }
25 | .pagetoc a {
26 | border-left: 1px solid var(--sidebar-bg);
27 | /* color: var(--fg); */
28 | /* color: var(--sidebar-fg); */
29 | color: var(--links);
30 | display: block;
31 | padding-bottom: 5px;
32 | padding-top: 5px;
33 | padding-left: 10px;
34 | text-align: left;
35 | text-decoration: none;
36 | font-weight: normal;
37 | background: var(--sidebar-bg);
38 | }
39 | .pagetoc a:hover,
40 | .pagetoc a.active {
41 | background: var(--sidebar-bg);
42 | /* color: var(--sidebar-fg); */
43 | color: var(--sidebar-active);
44 | font-weight: bold;
45 | font-size: var(--pagetoc-fontsize);
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/theme/pagetoc.js:
--------------------------------------------------------------------------------
1 | // src: https://github.com/JorelAli/mdBook-pagetoc
2 |
3 | // Un-active everything when you click it
4 | Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el, i) {
5 | el.addEventHandler("click", function() {
6 | Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el, i) {
7 | el.classList.remove("active");
8 | });
9 | el.classList.add("active");
10 | });
11 | });
12 |
13 | var updateFunction = function() {
14 |
15 | var id;
16 | var elements = document.getElementsByClassName("header");
17 | Array.prototype.forEach.call(elements, function(el, i) {
18 | if (window.pageYOffset >= el.offsetTop) {
19 | id = el;
20 | }
21 | });
22 |
23 | Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el, i) {
24 | el.classList.remove("active");
25 | });
26 |
27 | Array.prototype.forEach.call(document.getElementsByClassName("pagetoc")[0].children, function(el, i) {
28 | if (id.href.localeCompare(el.href) == 0) {
29 | el.classList.add("active");
30 | }
31 | });
32 | };
33 |
34 | // Populate sidebar on load
35 | window.addEventListener('load', function() {
36 | var pagetoc = document.getElementsByClassName("pagetoc")[0];
37 | var elements = document.getElementsByClassName("header");
38 | Array.prototype.forEach.call(elements, function(el, i) {
39 | var link = document.createElement("a");
40 |
41 | // Indent shows hierarchy
42 | var indent = "";
43 | switch (el.parentElement.tagName) {
44 | case "H2":
45 | indent = "20px";
46 | break;
47 | case "H3":
48 | indent = "40px";
49 | break;
50 | case "H4":
51 | indent = "60px";
52 | break;
53 | default:
54 | break;
55 | }
56 |
57 | link.appendChild(document.createTextNode(el.text));
58 | link.style.paddingLeft = indent;
59 | link.href = el.href;
60 | pagetoc.appendChild(link);
61 | });
62 | updateFunction.call();
63 | });
64 |
65 |
66 |
67 | // Handle active elements on scroll
68 | window.addEventListener("scroll", updateFunction);
69 |
--------------------------------------------------------------------------------