Skip to content

Commit

Permalink
fix(theme): support custom target and rel in navbar links for mobile (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
sapphi-red committed May 22, 2023
1 parent 4896811 commit f364a5d
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 16 deletions.
3 changes: 1 addition & 2 deletions src/client/theme-default/components/VPNavScreenMenu.vue
Expand Up @@ -11,8 +11,7 @@ const { theme } = useData()
<template v-for="item in theme.nav" :key="item.text">
<VPNavScreenMenuLink
v-if="'link' in item"
:text="item.text"
:link="item.link"
:item="item"
/>
<VPNavScreenMenuGroup
v-else
Expand Down
5 changes: 1 addition & 4 deletions src/client/theme-default/components/VPNavScreenMenuGroup.vue
Expand Up @@ -35,10 +35,7 @@ function toggle() {
<div :id="groupId" class="items">
<template v-for="item in items" :key="item.text">
<div v-if="'link' in item" :key="item.text" class="item">
<VPNavScreenMenuGroupLink
:text="item.text"
:link="item.link"
/>
<VPNavScreenMenuGroupLink :item="item" />
</div>

<div v-else class="group">
Expand Down
14 changes: 10 additions & 4 deletions src/client/theme-default/components/VPNavScreenMenuGroupLink.vue
@@ -1,18 +1,24 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { inject } from 'vue'
import VPLink from './VPLink.vue'
defineProps<{
text: string
link: string
item: DefaultTheme.NavItemWithLink
}>()
const closeScreen = inject('close-screen') as () => void
</script>

<template>
<VPLink class="VPNavScreenMenuGroupLink" :href="link" @click="closeScreen">
{{ text }}
<VPLink
class="VPNavScreenMenuGroupLink"
:href="item.link"
:target="item.target"
:rel="item.rel"
@click="closeScreen"
>
{{ item.text }}
</VPLink>
</template>

Expand Down
Expand Up @@ -14,8 +14,7 @@ defineProps<{
<VPNavScreenMenuGroupLink
v-for="item in items"
:key="item.text"
:text="item.text"
:link="item.link"
:item="item"
/>
</div>
</template>
Expand Down
14 changes: 10 additions & 4 deletions src/client/theme-default/components/VPNavScreenMenuLink.vue
@@ -1,18 +1,24 @@
<script lang="ts" setup>
import type { DefaultTheme } from 'vitepress/theme'
import { inject } from 'vue'
import VPLink from './VPLink.vue'
defineProps<{
text: string
link: string
item: DefaultTheme.NavItemWithLink
}>()
const closeScreen = inject('close-screen') as () => void
</script>

<template>
<VPLink class="VPNavScreenMenuLink" :href="link" @click="closeScreen">
{{ text }}
<VPLink
class="VPNavScreenMenuLink"
:href="item.link"
:target="item.target"
:rel="item.rel"
@click="closeScreen"
>
{{ item.text }}
</VPLink>
</template>

Expand Down

0 comments on commit f364a5d

Please sign in to comment.