diff --git a/docs/notes/theme/guide/custom/slots.md b/docs/notes/theme/guide/custom/slots.md index 4b2b76cf..4e844f14 100644 --- a/docs/notes/theme/guide/custom/slots.md +++ b/docs/notes/theme/guide/custom/slots.md @@ -99,6 +99,8 @@ export default defineClientConfig({ - `doc-footer-before` - `doc-before` - `doc-after` + - `doc-meta-before` + - `doc-meta-after` - `sidebar-nav-before` - `sidebar-nav-after` - `aside-top` diff --git a/theme/src/client/components/Blog/VPBlogAside.vue b/theme/src/client/components/Blog/VPBlogAside.vue index 6b6f0994..17746d0e 100644 --- a/theme/src/client/components/Blog/VPBlogAside.vue +++ b/theme/src/client/components/Blog/VPBlogAside.vue @@ -21,7 +21,6 @@ const { theme } = useData() top: calc(var(--vp-nav-height) + 2rem); display: none; width: 270px; - overflow-y: auto; text-align: center; } diff --git a/theme/src/client/components/VPContent.vue b/theme/src/client/components/VPContent.vue index b50f0dc3..6aa488e7 100644 --- a/theme/src/client/components/VPContent.vue +++ b/theme/src/client/components/VPContent.vue @@ -136,6 +136,13 @@ watch( + + + diff --git a/theme/src/client/components/VPDoc.vue b/theme/src/client/components/VPDoc.vue index 7c369031..454ba67f 100644 --- a/theme/src/client/components/VPDoc.vue +++ b/theme/src/client/components/VPDoc.vue @@ -122,7 +122,15 @@ watch(
- + + + + +
+import type { Ref } from 'vue' import VPBadge from '@theme/global/VPBadge.vue' import VPLink from '@theme/VPLink.vue' import { useReadingTimeLocale } from '@vuepress/plugin-reading-time/client' -import { computed } from 'vue' +import { computed, inject, ref } from 'vue' import { useBlogPageData, useData, useInternalLink, useTagColors } from '../composables/index.js' const { page, frontmatter: matter, theme, blog } = useData<'post'>() @@ -40,7 +41,15 @@ const badge = computed(() => { return false }) -const hasMeta = computed(() => readingTime.value.time || tags.value.length || createTime.value) +// 无法准确判断是否存在 doc-meta 插槽,因此需要通过 provide 传递 +const hasDocMetaSlot = inject>('doc-meta-slot-exists', ref(false)) + +const hasMeta = computed(() => + readingTime.value.time + || tags.value.length + || createTime.value + || hasDocMetaSlot.value, +)