diff --git a/utils/resolve-refs.test.tsx b/utils/resolve-refs.test.tsx
index 9b29330..2df9845 100644
--- a/utils/resolve-refs.test.tsx
+++ b/utils/resolve-refs.test.tsx
@@ -48,4 +48,10 @@ suite("function resolveRefs", () => {
resolveRefs(el, "/");
assert.deepEqual(el, elFn());
});
+
+ test("ignores absolute URIs", () => {
+ const el =
;
+ const resEl = resolveRefs(el, "/");
+ assert.equal(el, resEl);
+ });
});
diff --git a/utils/resolve-refs.ts b/utils/resolve-refs.ts
index d3ea932..7bdba49 100644
--- a/utils/resolve-refs.ts
+++ b/utils/resolve-refs.ts
@@ -26,8 +26,10 @@ export function resolveRefs(node: Node, dir: string) {
&& node.attributes.has("href")
) {
const original = node.attributes.get("href")!
+ if (/^[a-z][a-z+.-]*:/i.test(original)) {
+ // Ignore refs that start with a URI scheme.
/* node:coverage ignore next 3 */
- if (!original.startsWith("/")) {
+ } else if (!original.startsWith("/")) {
console.log(`Warning: found relative href to ${original}`);
} else {
const ref = posix.relative(dir, original);