Jacky Zhao
2023-11-16 f861a7c160a0b3be76a16c5bf2ea1a8d076a9662
quartz/components/scripts/spa.inline.ts
@@ -1,5 +1,6 @@
import micromorph from "micromorph"
import { FullSlug, RelativeURL, getFullSlug } from "../../util/path"
import { normalizeRelativeURLs } from "./popover.inline"
// adapted from `micromorph`
// https://github.com/natemoo-re/micromorph
@@ -14,7 +15,7 @@
    if (window.location.origin === url.origin) {
      return true
    }
  } catch (e) {}
  } catch (e) { }
  return false
}
@@ -52,6 +53,8 @@
  if (!contents) return
  const html = p.parseFromString(contents, "text/html")
  normalizeRelativeURLs(html, url)
  let title = html.querySelector("title")?.textContent
  if (title) {
    document.title = title
@@ -106,6 +109,7 @@
      if (isSamePage(url) && url.hash) {
        const el = document.getElementById(decodeURIComponent(url.hash.substring(1)))
        el?.scrollIntoView()
        history.pushState({}, "", url)
        return
      }
@@ -154,6 +158,7 @@
    style:
      "position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px",
  }
  customElements.define(
    "route-announcer",
    class RouteAnnouncer extends HTMLElement {