| | |
| | | ) { |
| | | let dest = node.properties.href as RelativeURL |
| | | const classes = (node.properties.className ?? []) as string[] |
| | | const isExternal = isAbsoluteUrl(dest) |
| | | const isExternal = isAbsoluteUrl(dest, { httpOnly: false }) |
| | | classes.push(isExternal ? "external" : "internal") |
| | | |
| | | if (isExternal && opts.externalLinkIcon) { |
| | |
| | | type: "element", |
| | | tagName: "svg", |
| | | properties: { |
| | | "aria-hidden": "true", |
| | | class: "external-icon", |
| | | style: "max-width:0.8em;max-height:0.8em", |
| | | viewBox: "0 0 512 512", |
| | | }, |
| | | children: [ |
| | |
| | | } |
| | | |
| | | // don't process external links or intra-document anchors |
| | | const isInternal = !(isAbsoluteUrl(dest) || dest.startsWith("#")) |
| | | const isInternal = !( |
| | | isAbsoluteUrl(dest, { httpOnly: false }) || dest.startsWith("#") |
| | | ) |
| | | if (isInternal) { |
| | | dest = node.properties.href = transformLink( |
| | | file.data.slug!, |
| | |
| | | node.properties.loading = "lazy" |
| | | } |
| | | |
| | | if (!isAbsoluteUrl(node.properties.src)) { |
| | | if (!isAbsoluteUrl(node.properties.src, { httpOnly: false })) { |
| | | let dest = node.properties.src as RelativeURL |
| | | dest = node.properties.src = transformLink( |
| | | file.data.slug!, |