aboutsummaryrefslogtreecommitdiff
path: root/src/lib/MarkdownLink.svelte
blob: 0e01db41c6bc323cb3967df37b8d9cfba5189e4f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script lang="ts">
let { href, text }: { href: string; text: string } = $props();
let safeHref = $derived.by(() => {
  try {
    let url = new URL(href);

    switch (url.protocol) {
      case 'javascript:':
        return '#';

      default:
        return href;
    }
  } catch (error) {
    return '#';
  }
});
</script>

<a href={safeHref} target="_blank">{text}</a>