fix: add folder pages for empty, intermediate folders

This commit is contained in:
Thomas Hack 2024-07-28 09:07:24 +02:00
parent 34fde07cf8
commit e26448eaf3

View File

@ -76,12 +76,11 @@ export const FolderPage: QuartzEmitterPlugin<Partial<FolderPageOptions>> = (user
const folders: Set<SimpleSlug> = new Set(
allFiles.flatMap((data) => {
const slug = data.slug
const folderName = path.dirname(slug ?? "") as SimpleSlug
if (slug && folderName !== "." && folderName !== "tags") {
return [folderName]
}
return []
return data.slug
? _getFolders(data.slug).filter(
(folderName) => folderName !== "." && folderName !== "tags",
)
: []
}),
)
@ -133,3 +132,18 @@ export const FolderPage: QuartzEmitterPlugin<Partial<FolderPageOptions>> = (user
},
}
}
function _getFolders(slug: FullSlug): SimpleSlug[] {
var folderName = _dirname(slug)
const parentFolderNames = [folderName]
while (folderName !== ".") {
folderName = _dirname(folderName)
parentFolderNames.push(folderName)
}
return parentFolderNames
}
function _dirname(slug: string | undefined): SimpleSlug {
return path.dirname(slug ?? "") as SimpleSlug
}