aboutsummaryrefslogtreecommitdiff
path: root/docs/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/index.html')
-rw-r--r--docs/index.html115
1 files changed, 0 insertions, 115 deletions
diff --git a/docs/index.html b/docs/index.html
deleted file mode 100644
index 82c2697..0000000
--- a/docs/index.html
+++ /dev/null
@@ -1,115 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>Lustre</title>
-
- <link rel="stylesheet" href="./assets/styles.css" />
-
- <!-- Start Single Page Apps for GitHub Pages -->
- <script type="text/javascript">
- // Single Page Apps for GitHub Pages
- // MIT License
- // https://github.com/rafgraph/spa-github-pages
- // This script checks to see if a redirect is present in the query string,
- // converts it back into the correct url and adds it to the
- // browser's history using window.history.replaceState(...),
- // which won't cause the browser to attempt to load the new url.
- // When the single page app is loaded further down in this file,
- // the correct url will be waiting in the browser's history for
- // the single page app to route accordingly.
- if (window.location.search[1] === "/") {
- const decoded = window.location.search
- .slice(1)
- .split("&")
- .map((s) => s.replace(/~and~/g, "&"))
- .join("?");
-
- window.history.replaceState(
- null,
- null,
- window.location.pathname.slice(0, -1) + decoded + window.location.hash
- );
- }
- </script>
- <!-- End Single Page Apps for GitHub Pages -->
-
- <script type="module">
- import {
- main,
- Route,
- OnRouteChange,
- OnRouteHover,
- } from "./src/app.gleam";
-
- const strip_base = (path) =>
- `/${path.slice(import.meta.env.BASE_URL.length)}`;
-
- document.addEventListener("DOMContentLoaded", () => {
- const url = new URL(window.location.href);
-
- const dispatch = main({
- path: strip_base(url.pathname),
- hash: url.hash,
- });
-
- // We want to trap click events on anchor elements so we can do our own
- // client side routing.
- document.addEventListener("click", (e) => {
- let target = e.target;
-
- while (target) {
- if (target === document.body) return;
- if (target.tagName === "A") {
- const url = new URL(target.href);
- if (url.origin !== window.location.origin) return;
- const route = new Route(strip_base(url.pathname), url.hash);
-
- e.preventDefault();
- window.requestAnimationFrame(() => {
- window.history.pushState({}, "", url.href);
-
- if (url.pathname === window.location.pathname && url.hash) {
- document.querySelector(url.hash)?.scrollIntoView();
- } else {
- window.scrollTo(0, 0);
- }
- });
-
- return void dispatch(new OnRouteChange(route));
- }
-
- target = target.parentNode;
- }
- });
-
- document.addEventListener("mouseover", (e) => {
- let target = e.target;
-
- while (target) {
- if (target === document.body) return;
- if (target.tagName === "A") {
- const url = new URL(target.href);
- if (url.origin !== window.location.origin) return;
- const route = new Route(strip_base(url.pathname), url.hash);
- return void dispatch(new OnRouteHover(route));
- }
-
- target = target.parentNode;
- }
- });
-
- // This lets us listen to the back and forward buttons in the browser
- // and trigger our app's routing.
- window.addEventListener("popstate", () => {
- const url = new URL(window.location.href);
- const route = new Route(strip_base(url.pathname), url.hash);
-
- dispatch(new OnRouteChange(route));
- });
- });
- </script>
- </head>
- <body></body>
-</html>