mirror of
https://github.com/alrayyes/wiki.git
synced 2025-05-17 13:22:29 +00:00
fix: parsing wikilinks that have codeblock anchors, scroll to anchor
This commit is contained in:
parent
fd5c8d17d3
commit
24348b24a9
16 changed files with 99 additions and 80 deletions
quartz/components/scripts
38
quartz/components/scripts/util.ts
Normal file
38
quartz/components/scripts/util.ts
Normal file
|
@ -0,0 +1,38 @@
|
|||
export function registerEscapeHandler(outsideContainer: HTMLElement | null, cb: () => void) {
|
||||
if (!outsideContainer) return
|
||||
function click(this: HTMLElement, e: HTMLElementEventMap["click"]) {
|
||||
if (e.target !== this) return
|
||||
e.preventDefault()
|
||||
cb()
|
||||
}
|
||||
|
||||
function esc(e: HTMLElementEventMap["keydown"]) {
|
||||
if (!e.key.startsWith("Esc")) return
|
||||
e.preventDefault()
|
||||
cb()
|
||||
}
|
||||
|
||||
outsideContainer?.removeEventListener("click", click)
|
||||
outsideContainer?.addEventListener("click", click)
|
||||
document.removeEventListener("keydown", esc)
|
||||
document.addEventListener('keydown', esc)
|
||||
}
|
||||
|
||||
export function stripIndex(s: string): string {
|
||||
return s.endsWith("index") ? s.slice(0, -"index".length) : s
|
||||
}
|
||||
|
||||
export function relative(from: string, to: string) {
|
||||
from = encodeURI(stripIndex(from))
|
||||
to = encodeURI(stripIndex(to))
|
||||
const start = [location.protocol, '//', location.host, location.pathname].join('')
|
||||
const trimEnd = from.length === 0 ? start.length : -from.length
|
||||
const url = start.slice(0, trimEnd) + to
|
||||
return url
|
||||
}
|
||||
|
||||
export function removeAllChildren(node: HTMLElement) {
|
||||
while (node.firstChild) {
|
||||
node.removeChild(node.firstChild)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue