Initial commit

This commit is contained in:
Pax
2026-07-07 20:48:21 -04:00
committed by GitHub
commit ceb2d21bbf
292 changed files with 42584 additions and 0 deletions

52
quartz/util/path.ts Normal file
View File

@@ -0,0 +1,52 @@
// Re-export shared path utilities from @quartz-community/utils
export {
isFilePath,
isFullSlug,
isSimpleSlug,
isRelativeURL,
isAbsoluteURL,
getFullSlug,
slugifyFilePath,
simplifySlug,
joinSegments,
endsWith,
trimSuffix,
stripSlashes,
getFileExtension,
isFolderPath,
getAllSegmentPrefixes,
pathToRoot,
resolveRelative,
splitAnchor,
slugTag,
transformInternalLink,
transformLink,
normalizeHastElement,
} from "@quartz-community/utils"
export type {
FilePath,
FullSlug,
SimpleSlug,
RelativeURL,
TransformOptions,
} from "@quartz-community/utils"
// --- v5-specific exports below ---
export const QUARTZ = "quartz"
// from micromorph/src/utils.ts
// https://github.com/natemoo-re/micromorph/blob/main/src/utils.ts#L5
const _rebaseHtmlElement = (el: Element, attr: string, newBase: string | URL) => {
const rebased = new URL(el.getAttribute(attr)!, newBase)
el.setAttribute(attr, rebased.pathname + rebased.hash)
}
export function normalizeRelativeURLs(el: Element | Document, destination: string | URL) {
el.querySelectorAll('[href=""], [href^="./"], [href^="../"]').forEach((item) => {
_rebaseHtmlElement(item, "href", destination)
})
el.querySelectorAll('[src=""], [src^="./"], [src^="../"]').forEach((item) => {
_rebaseHtmlElement(item, "src", destination)
})
}