avoid 404 on icon for spa navigations with anchors
| | |
| | | import { pathToRoot } from "../util/path" |
| | | import { joinSegments, pathToRoot } from "../util/path" |
| | | import { JSResourceToScriptElement } from "../util/resources" |
| | | import { QuartzComponentConstructor, QuartzComponentProps } from "./types" |
| | | |
| | |
| | | const description = fileData.description?.trim() ?? "No description provided" |
| | | const { css, js } = externalResources |
| | | const baseDir = pathToRoot(fileData.slug!) |
| | | const iconPath = baseDir + "/static/icon.png" |
| | | const iconPath = joinSegments(baseDir, "static/icon.png") |
| | | const ogImagePath = `https://${cfg.baseUrl}/static/og-image.png` |
| | | |
| | | return ( |
| | |
| | | |
| | | // scroll into place and add history |
| | | if (!isBack) { |
| | | history.pushState({}, "", url) |
| | | if (url.hash) { |
| | | const el = document.getElementById(url.hash.substring(1)) |
| | | el?.scrollIntoView() |
| | |
| | | const elementsToAdd = html.head.querySelectorAll(":not([spa-preserve])") |
| | | elementsToAdd.forEach((el) => document.head.appendChild(el)) |
| | | |
| | | // delay setting the url until now |
| | | // at this point everything is loaded so changing the url should resolve to the correct addresses |
| | | history.pushState({}, "", url) |
| | | notifyNav(getFullSlug(window)) |
| | | delete announcer.dataset.persist |
| | | } |