diff --git a/docs/notes/theme/guide/custom/slots.md b/docs/notes/theme/guide/custom/slots.md
index 4e844f14..0ea30d98 100644
--- a/docs/notes/theme/guide/custom/slots.md
+++ b/docs/notes/theme/guide/custom/slots.md
@@ -96,9 +96,12 @@ export default defineClientConfig({
- `doc-top`
- `doc-bottom`
+ - `doc-content-before`
- `doc-footer-before`
- `doc-before`
- `doc-after`
+ - `doc-meta-top`
+ - `doc-meta-bottom`
- `doc-meta-before`
- `doc-meta-after`
- `sidebar-nav-before`
@@ -160,7 +163,11 @@ export default defineClientConfig({
- `nav-bar-title-after`
- `nav-bar-content-before`
- `nav-bar-content-after`
+- `nav-bar-menu-before`
+- `nav-bar-menu-after`
- `nav-screen-content-before`
- `nav-screen-content-after`
+- `nav-screen-menu-before`
+- `nav-screen-menu-after`
- `footer-content`
- `bulletin-content`
diff --git a/theme/src/client/components/Nav/VPNav.vue b/theme/src/client/components/Nav/VPNav.vue
index 2fe3a00d..e1c1d7c0 100644
--- a/theme/src/client/components/Nav/VPNav.vue
+++ b/theme/src/client/components/Nav/VPNav.vue
@@ -43,6 +43,12 @@ watchEffect(() => {
+
+
+
+
+
+
@@ -52,6 +58,12 @@ watchEffect(() => {
+
+
+
+
+
+
diff --git a/theme/src/client/components/Nav/VPNavBar.vue b/theme/src/client/components/Nav/VPNavBar.vue
index 362221b6..910b26a3 100644
--- a/theme/src/client/components/Nav/VPNavBar.vue
+++ b/theme/src/client/components/Nav/VPNavBar.vue
@@ -51,7 +51,9 @@ watchPostEffect(() => {
+
+
diff --git a/theme/src/client/components/Nav/VPNavScreen.vue b/theme/src/client/components/Nav/VPNavScreen.vue
index b969b85c..5da03aa2 100644
--- a/theme/src/client/components/Nav/VPNavScreen.vue
+++ b/theme/src/client/components/Nav/VPNavScreen.vue
@@ -24,7 +24,9 @@ const isLocked = useScrollLock(inBrowser ? document.body : null)
+
+
diff --git a/theme/src/client/components/VPContent.vue b/theme/src/client/components/VPContent.vue
index 6aa488e7..f33f09f8 100644
--- a/theme/src/client/components/VPContent.vue
+++ b/theme/src/client/components/VPContent.vue
@@ -142,7 +142,15 @@ watch(
-
+
+
+
+
+
+
+
+
+
diff --git a/theme/src/client/components/VPDoc.vue b/theme/src/client/components/VPDoc.vue
index 454ba67f..3ac558fc 100644
--- a/theme/src/client/components/VPDoc.vue
+++ b/theme/src/client/components/VPDoc.vue
@@ -122,6 +122,8 @@ watch(
+
+
@@ -130,17 +132,19 @@ watch(
+
+
+
-
diff --git a/theme/src/client/components/global/VPCardMasonry.vue b/theme/src/client/components/global/VPCardMasonry.vue
index e7cf95cd..ddfc9032 100644
--- a/theme/src/client/components/global/VPCardMasonry.vue
+++ b/theme/src/client/components/global/VPCardMasonry.vue
@@ -27,6 +27,9 @@ const rawList = computed(() => {
})
const columnsLength = computed
(() => {
+ if (__VUEPRESS_SSR__)
+ return 3
+
let length = 1
if (typeof props.cols === 'number') {
length = props.cols
@@ -67,6 +70,9 @@ async function drawColumns() {
}
onMounted(() => {
+ if (__VUEPRESS_SSR__)
+ return
+
drawColumns()
const debounceDraw = useDebounceFn(drawColumns)
watch([rawList, columnsLength], debounceDraw, { flush: 'post' })
diff --git a/theme/src/client/layouts/Layout.vue b/theme/src/client/layouts/Layout.vue
index 36d6a968..dfd8ce1a 100644
--- a/theme/src/client/layouts/Layout.vue
+++ b/theme/src/client/layouts/Layout.vue
@@ -56,12 +56,24 @@ useCloseSidebarOnEscape(isSidebarOpen, closeSidebar)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/theme/src/client/layouts/NotFound.vue b/theme/src/client/layouts/NotFound.vue
index 87dd36fd..700d9ba6 100644
--- a/theme/src/client/layouts/NotFound.vue
+++ b/theme/src/client/layouts/NotFound.vue
@@ -28,12 +28,24 @@ const { theme } = useData()
+
+
+
+
+
+
+
+
+
+
+
+