Jacky Zhao
2023-08-07 028bcec62c3ca019a96783f17eaee1ecce6e092b
quartz/plugins/transformers/links.ts
@@ -2,6 +2,7 @@
import {
  CanonicalSlug,
  RelativeURL,
  _stripSlashes,
  canonicalizeServer,
  joinSegments,
  pathToRoot,
@@ -35,7 +36,7 @@
          return (tree, file) => {
            const curSlug = canonicalizeServer(file.data.slug!)
            const transformLink = (target: string): RelativeURL => {
              const targetSlug = transformInternalLink(target).slice("./".length)
              const targetSlug = _stripSlashes(transformInternalLink(target).slice(".".length))
              let [targetCanonical, targetAnchor] = splitAnchor(targetSlug)
              if (opts.markdownLinkResolution === "relative") {
                return targetSlug as RelativeURL
@@ -47,6 +48,7 @@
                  return targetCanonical === fileName
                })
                // only match, just use it
                if (matchingFileNames.length === 1) {
                  const targetSlug = canonicalizeServer(matchingFileNames[0])
                  return (resolveRelative(curSlug, targetSlug) + targetAnchor) as RelativeURL
@@ -75,7 +77,7 @@
                // don't process external links or intra-document anchors
                if (!(isAbsoluteUrl(dest) || dest.startsWith("#"))) {
                  dest = node.properties.href = transformLink(dest)
                  const canonicalDest = path.normalize(joinSegments(curSlug, dest))
                  const canonicalDest = path.posix.normalize(joinSegments(curSlug, dest))
                  const [destCanonical, _destAnchor] = splitAnchor(canonicalDest)
                  outgoing.add(destCanonical as CanonicalSlug)
                }
@@ -99,7 +101,7 @@
                if (!isAbsoluteUrl(node.properties.src)) {
                  const ext = path.extname(node.properties.src)
                  node.properties.src =
                    transformLink(path.join("assets", node.properties.src)) + ext
                    transformLink(joinSegments("assets", node.properties.src)) + ext
                }
              }
            })