Rune Antonsen
2023-11-20 9a599aebeada7f95170dac98c3f30023d9e7453f
feat(breadcrumbs): add option to hide current page (#601)

* feat(breadcrumbs): add option to hide current page

* Remove debug lines

Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>

---------

Co-authored-by: ruant <ruant@ruant.net>
Co-authored-by: Jacky Zhao <j.zhao2k19@gmail.com>
2 files modified
16 ■■■■ changed files
docs/features/breadcrumbs.md 1 ●●●● patch | view | raw | blame | history
quartz/components/Breadcrumbs.tsx 15 ●●●● patch | view | raw | blame | history
docs/features/breadcrumbs.md
@@ -20,6 +20,7 @@
  rootName: "Home", // name of first/root element
  resolveFrontmatterTitle: true, // whether to resolve folder names through frontmatter titles
  hideOnRoot: true, // whether to hide breadcrumbs on root `index.md` page
  showCurrentPage: true, // wether to display the current page in the breadcrumbs
})
```
quartz/components/Breadcrumbs.tsx
@@ -25,6 +25,10 @@
   * Wether to display breadcrumbs on root `index.md`
   */
  hideOnRoot: boolean
  /**
   * Wether to display the current page in the breadcrumbs.
   */
  showCurrentPage: boolean
}
const defaultOptions: BreadcrumbOptions = {
@@ -32,6 +36,7 @@
  rootName: "Home",
  resolveFrontmatterTitle: true,
  hideOnRoot: true,
  showCurrentPage: true,
}
function formatCrumb(displayName: string, baseSlug: FullSlug, currentSlug: SimpleSlug): CrumbData {
@@ -95,10 +100,12 @@
      }
      // Add current file to crumb (can directly use frontmatter title)
      crumbs.push({
        displayName: fileData.frontmatter!.title,
        path: "",
      })
      if (options.showCurrentPage) {
        crumbs.push({
          displayName: fileData.frontmatter!.title,
          path: "",
        })
      }
    }
    return (
      <nav class={`breadcrumb-container ${displayClass ?? ""}`} aria-label="breadcrumbs">