Radish alpha
r
rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5
Radicle web interface
Radicle
Git
Revert URL.canParse to try catch
Merged did:key:z6MkkfM3...sVz5 opened 2 years ago
2 files changed +8 -4 841f1a4e 999c292b
modified src/components/Markdown.svelte
@@ -99,11 +99,13 @@

  afterUpdate(async () => {
    for (const e of container.querySelectorAll("a")) {
-
      if (URL.canParse(e.href)) {
+
      try {
        const url = new URL(e.href);
        if (url.origin !== window.origin) {
          e.target = "_blank";
        }
+
      } catch (e) {
+
        console.warn("Not able to parse url", e);
      }
      // Don't underline <a> tags that contain images.
      if (e.firstElementChild instanceof HTMLImageElement) {
modified src/lib/markdown.ts
@@ -140,9 +140,11 @@ export class Renderer extends BaseRenderer {
      // By lowercasing we avoid casing mismatches, between headings and links.
      return `<a ${title ? `title="${title}"` : ""} href="${href.toLowerCase()}">${text}</a>`;
    } else {
-
      href = URL.canParse(href, this.#baseUrl)
-
        ? new URL(href, this.#baseUrl).href
-
        : href;
+
      try {
+
        href = new URL(href, this.#baseUrl).href;
+
      } catch {
+
        // Use original href value
+
      }

      return `<a ${title ? `title="${title}"` : ""} href="${href}">${text}</a>`;
    }