fix: breadcrumbs on non-folder pages

This commit is contained in:
Jacky Zhao 2024-01-21 21:14:12 -08:00
parent 0403fa70aa
commit 273931d25c

View file

@ -69,9 +69,9 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
for (const file of allFiles) { for (const file of allFiles) {
if (file.slug?.endsWith("index")) { if (file.slug?.endsWith("index")) {
const folderParts = file.slug?.split("/") const folderParts = file.slug?.split("/")
if (folderParts) { // 2nd last to exclude the /index
// 2nd last to exclude the /index const folderName = folderParts?.at(-2)
const folderName = folderParts[folderParts?.length - 2] if (folderName) {
folderIndex.set(folderName, file) folderIndex.set(folderName, file)
} }
} }
@ -104,13 +104,14 @@ export default ((opts?: Partial<BreadcrumbOptions>) => {
} }
// Add current file to crumb (can directly use frontmatter title) // Add current file to crumb (can directly use frontmatter title)
if (options.showCurrentPage && slugParts.at(-1) === "") { if (options.showCurrentPage && slugParts.at(-1) !== "index") {
crumbs.push({ crumbs.push({
displayName: fileData.frontmatter!.title, displayName: fileData.frontmatter!.title,
path: "", path: "",
}) })
} }
} }
return ( return (
<nav class={`breadcrumb-container ${displayClass ?? ""}`} aria-label="breadcrumbs"> <nav class={`breadcrumb-container ${displayClass ?? ""}`} aria-label="breadcrumbs">
{crumbs.map((crumb, index) => ( {crumbs.map((crumb, index) => (