fix(theme): incorrect internal link

This commit is contained in:
pengzhanbo 2024-09-06 00:17:13 +08:00
parent 2fd8da5b7c
commit aeee0ec8de
4 changed files with 18 additions and 9 deletions

View File

@ -54,7 +54,7 @@ const createTime = computed(() =>
<div v-if="categoryList.length" class="category-list"> <div v-if="categoryList.length" class="category-list">
<span class="icon vpi-folder" /> <span class="icon vpi-folder" />
<template v-for="(cate, i) in categoryList" :key="i"> <template v-for="(cate, i) in categoryList" :key="i">
<VPLink :href="`${categoriesLink.link}?id=${cate.id}`"> <VPLink :href="`${categoriesLink ? `${categoriesLink.link}?id=${cate.id}` : undefined}`">
{{ cate.name }} {{ cate.name }}
</VPLink> </VPLink>
<span v-if="i !== categoryList.length - 1">/</span> <span v-if="i !== categoryList.length - 1">/</span>
@ -66,7 +66,7 @@ const createTime = computed(() =>
<VPLink <VPLink
class="tag" class="tag"
:class="tag.className" :class="tag.className"
:href="`${tagsLink.link}?tag=${tag.name}`" :href="`${tagsLink ? `${tagsLink.link}?tag=${tag.name}` : undefined}`"
> >
{{ tag.name }} {{ tag.name }}
</VPLink> </VPLink>

View File

@ -37,7 +37,7 @@ const breadcrumbList = computed<Breadcrumb[]>(() => {
for (const category of categoryList) { for (const category of categoryList) {
list.push({ list.push({
text: category.name, text: category.name,
link: `${categories.value.link}?id=${category.id}`, link: `${categories.value ? `${categories.value.link}?id=${category.id}` : undefined}`,
}) })
} }
} }

View File

@ -2,12 +2,13 @@
import { computed } from 'vue' import { computed } from 'vue'
import VPLink from '@theme/VPLink.vue' import VPLink from '@theme/VPLink.vue'
import { useReadingTimeLocale } from '@vuepress/plugin-reading-time/client' import { useReadingTimeLocale } from '@vuepress/plugin-reading-time/client'
import { useData, useInternalLink, useTagColors } from '../composables/index.js' import { useBlogPageData, useData, useInternalLink, useTagColors } from '../composables/index.js'
const { page, frontmatter: matter } = useData<'post'>() const { page, frontmatter: matter } = useData<'post'>()
const colors = useTagColors() const colors = useTagColors()
const readingTime = useReadingTimeLocale() const readingTime = useReadingTimeLocale()
const { tags: tagsLink } = useInternalLink() const { tags: tagsLink } = useInternalLink()
const { isBlogPost } = useBlogPageData()
const createTime = computed(() => { const createTime = computed(() => {
if (matter.value.createTime) if (matter.value.createTime)
@ -47,7 +48,7 @@ const hasMeta = computed(() => readingTime.value.time || tags.value.length || cr
:key="tag.name" :key="tag.name"
class="tag" class="tag"
:class="tag.className" :class="tag.className"
:href="`${tagsLink.link}?tag=${tag.name}`" :href="`${tagsLink?.link && isBlogPost ? `${tagsLink.link}?tag=${tag.name}` : undefined}`"
> >
{{ tag.name }} {{ tag.name }}
</VPLink> </VPLink>

View File

@ -23,10 +23,18 @@ export function useInternalLink() {
const blogData = computed(() => theme.value.blog || {}) const blogData = computed(() => theme.value.blog || {})
const home = computed(() => resolveLink('home', '/')) const home = computed(() => resolveLink('home', '/'))
const blog = computed(() => resolveLink('blog', blogData.value.link || 'blog/')) const blog = computed(() => blogData.value.postList !== false
const tags = computed(() => resolveLink('tag', blogData.value.tagsLink || 'blog/tags/')) ? resolveLink('blog', blogData.value.link || 'blog/')
const archive = computed(() => resolveLink('archive', blogData.value.archivesLink || 'blog/archives/')) : home.value)
const categories = computed(() => resolveLink('category', blogData.value.categoriesLink || 'blog/categories/')) const tags = computed(() => blogData.value.tags !== false
? resolveLink('tag', blogData.value.tagsLink || 'blog/tags/')
: undefined)
const archive = computed(() => blogData.value.archives !== false
? resolveLink('archive', blogData.value.archivesLink || 'blog/archives/')
: undefined)
const categories = computed(() => blogData.value.categories !== false
? resolveLink('category', blogData.value.categoriesLink || 'blog/categories/')
: undefined)
return { return {
home, home,