From 8b4ce0d88b6fb6d8dca70802a675d61c5cad84c4 Mon Sep 17 00:00:00 2001 From: yizhi996 Date: Fri, 24 Jun 2022 19:30:28 +0800 Subject: [PATCH] feat: sidebar supported multi level --- .../components/VPSidebarLink.vue | 39 ++++++++++++++++--- types/default-theme.d.ts | 1 + 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/src/client/theme-default/components/VPSidebarLink.vue b/src/client/theme-default/components/VPSidebarLink.vue index 80958603..65e9dd6f 100644 --- a/src/client/theme-default/components/VPSidebarLink.vue +++ b/src/client/theme-default/components/VPSidebarLink.vue @@ -5,22 +5,40 @@ import { useData } from 'vitepress' import { isActive } from '../support/utils' import VPLink from './VPLink.vue' -defineProps<{ +withDefaults(defineProps<{ item: DefaultTheme.SidebarItem -}>() + depth?: number +}>(), { + depth: 1 +}) -const { page } = useData() +const { page, frontmatter } = useData() + +const maxDepth: number = frontmatter.value.sidebarDepth || Infinity const closeSideBar = inject('close-sidebar') as () => void @@ -32,6 +50,10 @@ const closeSideBar = inject('close-sidebar') as () => void transition: color 0.5s; } +.link>.link { + padding: 4px 0 4px 20px; +} + .link:hover { color: var(--vp-c-text-1); } @@ -51,4 +73,9 @@ const closeSideBar = inject('close-sidebar') as () => void font-size: 14px; font-weight: 500; } + +.link-text-light { + font-size: 13px; + font-weight: 400; +} diff --git a/types/default-theme.d.ts b/types/default-theme.d.ts index f19f4395..b68eb578 100644 --- a/types/default-theme.d.ts +++ b/types/default-theme.d.ts @@ -137,6 +137,7 @@ export namespace DefaultTheme { export interface SidebarItem { text: string link: string + items?: SidebarItem[] } // edit link -----------------------------------------------------------------