| | |
| | | import { |
| | | CanonicalSlug, |
| | | RelativeURL, |
| | | _stripSlashes, |
| | | canonicalizeServer, |
| | | joinSegments, |
| | | pathToRoot, |
| | |
| | | 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 |
| | |
| | | // 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) |
| | | } |