| <!-- | |
| ~ Licensed under the Apache License, Version 2.0 (the "License"); | |
| ~ you may not use this file except in compliance with the License. | |
| ~ You may obtain a copy of the License at | |
| ~ http://www.apache.org/licenses/LICENSE-2.0 | |
| ~ Unless required by applicable law or agreed to in writing, software | |
| ~ distributed under the License is distributed on an "AS IS" BASIS, | |
| ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| ~ See the License for the specific language governing permissions and | |
| ~ limitations under the License. | |
| --> | |
| <!doctype html> | |
| <html lang="en" class="light"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <link rel="icon" href="./assets/images/zeppelin.png" type="image/x-icon" /> | |
| <link rel="stylesheet" href="./assets/fonts/material-symbols-outlined.css" /> | |
| <title>Zeppelin</title> | |
| <script> | |
| // Prevent FOUC (Flash of Unstyled Content) | |
| (function () { | |
| const savedTheme = localStorage.getItem('zeppelin-theme'); | |
| const systemPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches; | |
| const isDark = | |
| savedTheme === 'dark' || (savedTheme === 'system' && systemPrefersDark) || (!savedTheme && systemPrefersDark); | |
| if (isDark) { | |
| document.documentElement.classList.add('dark'); | |
| } | |
| })(); | |
| </script> | |
| </head> | |
| <body> | |
| <zeppelin-root> | |
| <section class="spin"> | |
| <div> | |
| <div class="logo"></div> | |
| <div class="spin-text"> | |
| <h1 class="brand-title" style="display: none">Zeppelin</h1> | |
| <span class="status" style="display: none">Booting ...</span> | |
| </div> | |
| </div> | |
| </section> | |
| </zeppelin-root> | |
| <script type="text/x-mathjax-config"> | |
| var config = { | |
| extensions: ["tex2jax.js"], | |
| jax: ["input/TeX", "output/HTML-CSS"], | |
| tex2jax: { | |
| inlineMath: [ ["\\(","\\)"] ], | |
| displayMath: [ ['$$','$$'], ["\\[","\\]"] ], | |
| processEscapes: true | |
| }, | |
| "HTML-CSS": { availableFonts: ["TeX"] }, | |
| messageStyle: "none" | |
| } | |
| const origin = window.location.origin; | |
| const pathname = window.location.pathname; | |
| config.root = window.location.origin + ( | |
| // remove trailing slash | |
| pathname.charAt(pathname.length - 1) === '/' ? | |
| pathname.slice(0, -1) : | |
| pathname | |
| ); | |
| MathJax.Hub.Config(config); | |
| </script> | |
| </body> | |
| </html> |