diff --git a/website/src/theme/DocBreadcrumbs/Items/Home/index.js b/website/src/theme/DocBreadcrumbs/Items/Home/index.js new file mode 100644 index 00000000..da075124 --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/Items/Home/index.js @@ -0,0 +1,23 @@ +import React from 'react'; +import Link from '@docusaurus/Link'; +import useBaseUrl from '@docusaurus/useBaseUrl'; +import {translate} from '@docusaurus/Translate'; +import IconHome from '@theme/Icon/Home'; +import styles from './styles.module.css'; +export default function HomeBreadcrumbItem() { + const homeHref = useBaseUrl('/docs'); + return ( +
  • + + + +
  • + ); +} diff --git a/website/src/theme/DocBreadcrumbs/Items/Home/styles.module.css b/website/src/theme/DocBreadcrumbs/Items/Home/styles.module.css new file mode 100644 index 00000000..533d7648 --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/Items/Home/styles.module.css @@ -0,0 +1,7 @@ +.breadcrumbHomeIcon { + position: relative; + top: 1px; + vertical-align: top; + height: 1.1rem; + width: 1.1rem; +} diff --git a/website/src/theme/DocBreadcrumbs/index.js b/website/src/theme/DocBreadcrumbs/index.js new file mode 100644 index 00000000..252c184f --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/index.js @@ -0,0 +1,93 @@ +import React from 'react'; +import clsx from 'clsx'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useSidebarBreadcrumbs} from '@docusaurus/plugin-content-docs/client'; +import {useHomePageRoute} from '@docusaurus/theme-common/internal'; +import Link from '@docusaurus/Link'; +import {translate} from '@docusaurus/Translate'; +import HomeBreadcrumbItem from '@theme/DocBreadcrumbs/Items/Home'; +import styles from './styles.module.css'; +// TODO move to design system folder +function BreadcrumbsItemLink({children, href, isLast}) { + const className = 'breadcrumbs__link'; + if (isLast) { + return ( + + {children} + + ); + } + return href ? ( + + {children} + + ) : ( + // TODO Google search console doesn't like breadcrumb items without href. + // The schema doesn't seem to require `id` for each `item`, although Google + // insist to infer one, even if it's invalid. Removing `itemProp="item + // name"` for now, since I don't know how to properly fix it. + // See https://github.com/facebook/docusaurus/issues/7241 + {children} + ); +} +// TODO move to design system folder +function BreadcrumbsItem({children, active, index, addMicrodata}) { + return ( +
  • + {children} + +
  • + ); +} +export default function DocBreadcrumbs() { + const breadcrumbs = useSidebarBreadcrumbs(); + const homePageRoute = useHomePageRoute(); + if (!breadcrumbs) { + return null; + } + return ( + + ); +} diff --git a/website/src/theme/DocBreadcrumbs/styles.module.css b/website/src/theme/DocBreadcrumbs/styles.module.css new file mode 100644 index 00000000..72da4671 --- /dev/null +++ b/website/src/theme/DocBreadcrumbs/styles.module.css @@ -0,0 +1,4 @@ +.breadcrumbsContainer { + --ifm-breadcrumb-size-multiplier: 0.8; + margin-bottom: 0.8rem; +}