fix(theme): fix getSidebar's buggy logic when supporting subtree-lifting hierachical sidebar config

close #4841
pull/4842/head
Charles Chen 2 months ago
parent e2a8ba04c5
commit 3de77e5c5f

@ -27,11 +27,18 @@ export function getSidebar(
const dir = Object.keys(_sidebar)
.sort((a, b) => {
// longer dir link has higher priority
return b.split('/').length - a.split('/').length
})
.find((dir) => {
const dirWithStartingSlash = ensureStartingSlash(dir)
// make sure the multi sidebar key starts with slash too
return path.startsWith(ensureStartingSlash(dir))
if (path.startsWith(dirWithStartingSlash)) {
// "/" match everything and it has lowest priority
if (dirWithStartingSlash === '/') return true
const remains = path.replace(dirWithStartingSlash, '')
if (remains.startsWith('/') || remains === '') return true
}
})
const sidebar = dir ? _sidebar[dir] : []

Loading…
Cancel
Save