aboutsummaryrefslogtreecommitdiff
path: root/src/lib/MarkdownLink.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/MarkdownLink.svelte')
-rw-r--r--src/lib/MarkdownLink.svelte29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/lib/MarkdownLink.svelte b/src/lib/MarkdownLink.svelte
index 731eb263..ee8c4900 100644
--- a/src/lib/MarkdownLink.svelte
+++ b/src/lib/MarkdownLink.svelte
@@ -1,21 +1,20 @@
<script lang="ts">
- export let href: string;
- export let text: string;
+ let { href, text }: { href: string; text: string } = $props();
+ let safeHref = $derived.by(() => {
+ try {
+ let url = new URL(href);
- try {
- let url = new URL(href);
+ switch (url.protocol) {
+ case 'javascript:':
+ return '#';
- switch (url.protocol) {
- case 'javascript:':
- href = '#';
- break;
-
- default:
- break;
+ default:
+ return href;
+ }
+ } catch (error) {
+ return '#';
}
- } catch (error) {
- href = '#';
- }
+ });
</script>
-<a {href} target="_blank">{text}</a>
+<a href={safeHref} target="_blank">{text}</a>