aboutsummaryrefslogtreecommitdiff
path: root/src/lib/MarkdownLink.svelte
blob: 014afa212e38f3660f1fb36f9bafcb0366273df0 (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>