feat: exclude sidebar item by frontmatter (#272)
parent
a4a184a788
commit
f5bfb5426d
|
@ -1,44 +1,48 @@
|
||||||
import { type DefaultTheme } from 'vitepress'
|
import { type DefaultTheme } from 'vitepress'
|
||||||
import { SidebarItem, generateSidebar } from 'vitepress-sidebar'
|
import { SidebarItem, SidebarMultiItem, generateSidebar } from 'vitepress-sidebar'
|
||||||
|
|
||||||
export const sidebar = generate()
|
export const sidebar = generate()
|
||||||
|
|
||||||
function generate() {
|
function generate() {
|
||||||
|
const baseConfig = {
|
||||||
|
useTitleFromFrontmatter: true,
|
||||||
|
excludeFilesByFrontmatter: true,
|
||||||
|
}
|
||||||
|
|
||||||
let sidebar = generateSidebar([
|
let sidebar = generateSidebar([
|
||||||
// 大学指南
|
// 大学指南
|
||||||
{
|
{
|
||||||
|
...baseConfig,
|
||||||
documentRootPath: '/docs',
|
documentRootPath: '/docs',
|
||||||
scanStartPath: 'campus',
|
scanStartPath: 'campus',
|
||||||
resolvePath: '/campus/',
|
resolvePath: '/campus/',
|
||||||
useTitleFromFrontmatter: true,
|
|
||||||
},
|
},
|
||||||
// 贡献指南
|
// 贡献指南
|
||||||
{
|
{
|
||||||
|
...baseConfig,
|
||||||
documentRootPath: '/docs',
|
documentRootPath: '/docs',
|
||||||
scanStartPath: 'contributor-guide',
|
scanStartPath: 'contributor-guide',
|
||||||
resolvePath: '/contributor-guide/',
|
resolvePath: '/contributor-guide/',
|
||||||
useTitleFromFrontmatter: true,
|
|
||||||
},
|
},
|
||||||
// Fashion
|
// Fashion
|
||||||
{
|
{
|
||||||
|
...baseConfig,
|
||||||
documentRootPath: '/docs',
|
documentRootPath: '/docs',
|
||||||
scanStartPath: 'fashion',
|
scanStartPath: 'fashion',
|
||||||
resolvePath: '/fashion/',
|
resolvePath: '/fashion/',
|
||||||
useTitleFromFrontmatter: true,
|
|
||||||
},
|
},
|
||||||
// 防护
|
// 防护
|
||||||
{
|
{
|
||||||
|
...baseConfig,
|
||||||
documentRootPath: '/docs',
|
documentRootPath: '/docs',
|
||||||
scanStartPath: 'personal-safety',
|
scanStartPath: 'personal-safety',
|
||||||
resolvePath: '/personal-safety/',
|
resolvePath: '/personal-safety/',
|
||||||
useTitleFromFrontmatter: true,
|
|
||||||
}
|
}
|
||||||
|
])
|
||||||
// 这个 `as` 源于 vitepress-sidebar 的类型定义与实际情况的差异,目前不影响使用,后续 vitepress-sidebar 修复后可以移除。
|
|
||||||
]) as DefaultTheme.Config['sidebar']
|
|
||||||
|
|
||||||
for (const key in sidebar) {
|
for (const key in sidebar) {
|
||||||
sidebar[key].items.sort(sidebarTitleSorter)
|
const sidebarMultiItem: SidebarMultiItem = (sidebar as any)[key]
|
||||||
|
sidebarMultiItem.items.sort(sidebarTitleSorter)
|
||||||
}
|
}
|
||||||
return sidebar
|
return sidebar
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
"unplugin-vue-components": "^0.26.0",
|
"unplugin-vue-components": "^0.26.0",
|
||||||
"vite": "^5.1.3",
|
"vite": "^5.1.3",
|
||||||
"vitepress": "1.0.0-rc.42",
|
"vitepress": "1.0.0-rc.42",
|
||||||
"vitepress-sidebar": "^1.18.6",
|
"vitepress-sidebar": "^1.19.0",
|
||||||
"vue": "^3.4.19",
|
"vue": "^3.4.19",
|
||||||
"wrangler": "^3.25.0"
|
"wrangler": "^3.25.0"
|
||||||
},
|
},
|
||||||
|
|
|
@ -63,8 +63,8 @@ importers:
|
||||||
specifier: 1.0.0-rc.42
|
specifier: 1.0.0-rc.42
|
||||||
version: 1.0.0-rc.42(@algolia/client-search@4.22.1)(postcss@8.4.35)(search-insights@2.13.0)
|
version: 1.0.0-rc.42(@algolia/client-search@4.22.1)(postcss@8.4.35)(search-insights@2.13.0)
|
||||||
vitepress-sidebar:
|
vitepress-sidebar:
|
||||||
specifier: ^1.18.6
|
specifier: ^1.19.0
|
||||||
version: 1.18.6
|
version: 1.19.0
|
||||||
vue:
|
vue:
|
||||||
specifier: ^3.4.19
|
specifier: ^3.4.19
|
||||||
version: 3.4.19
|
version: 3.4.19
|
||||||
|
@ -3153,8 +3153,8 @@ packages:
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/vitepress-sidebar@1.18.6:
|
/vitepress-sidebar@1.19.0:
|
||||||
resolution: {integrity: sha512-nXdaZGU28kHKsAnaDM8hQdofwLkm3sURJ21z/vmDKin6884ONx31ctTAG4ZcA5ROGuqpcvxrKxOiSOlfDS7BZg==}
|
resolution: {integrity: sha512-zX8DyFrMEvXhNj64q0OZsaDddkoxH7Z8fRD9zAa5zI0s3z5k5LxUXRpmsamjZaR5ut7P+tkiRuEnnheHCCEuPA==}
|
||||||
engines: {node: '>=18.0.0'}
|
engines: {node: '>=18.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
gray-matter: 4.0.3
|
gray-matter: 4.0.3
|
||||||
|
|
Loading…
Reference in New Issue