From 3a8a34977182df87f3c59f75e0024dcbac3746cd Mon Sep 17 00:00:00 2001 From: Rob van Bakel Date: Sun, 28 Apr 2024 11:22:07 +0200 Subject: [PATCH] fix: Prevent internal router from handling external links (#2107) --- docs/.vitepress/theme/components/base/Badge.vue | 13 ++++++++++++- .../theme/components/home/HomeHeroBefore.vue | 2 -- .../theme/components/icons/IconDetailOverlay.vue | 2 -- docs/icons/[name].md | 4 ---- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/docs/.vitepress/theme/components/base/Badge.vue b/docs/.vitepress/theme/components/base/Badge.vue index 0abedf2d6..7926c6483 100644 --- a/docs/.vitepress/theme/components/base/Badge.vue +++ b/docs/.vitepress/theme/components/base/Badge.vue @@ -7,7 +7,16 @@ const props = defineProps<{ href?: string }>() +const isExternal = computed(() => props.href?.startsWith('http') ?? false) + const component = computed(() => props.href ? 'a' : 'div') +const target = computed(() => isExternal.value ? '_blank' : undefined) +const rel = computed(() => isExternal.value ? 'noreferrer noopener' : undefined) + +const onClick = computed(() => { + if(!props.href || isExternal) return + return go(props.href) +}) diff --git a/docs/.vitepress/theme/components/icons/IconDetailOverlay.vue b/docs/.vitepress/theme/components/icons/IconDetailOverlay.vue index 9dc8d21de..b0214bf81 100644 --- a/docs/.vitepress/theme/components/icons/IconDetailOverlay.vue +++ b/docs/.vitepress/theme/components/icons/IconDetailOverlay.vue @@ -55,8 +55,6 @@ const Expand = createLucideIcon('Expand', expand) v-if="icon.createdRelease" class="version" :href="releaseTagLink(icon.createdRelease.version)" - target="_blank" - rel="noreferrer noopener" >v{{ icon.createdRelease.version }} diff --git a/docs/icons/[name].md b/docs/icons/[name].md index 69d1925f2..33d6101d9 100644 --- a/docs/icons/[name].md +++ b/docs/icons/[name].md @@ -69,8 +69,6 @@ function releaseTagLink(version) { v{{params.createdRelease.version}} @@ -82,8 +80,6 @@ function releaseTagLink(version) { v{{params.changedRelease.version}}