fix(theme-classic): do not add microdata item prop to trailing breadcrumb (#7179)

This commit is contained in:
Joshua Chen 2022-04-15 22:09:00 +08:00 committed by GitHub
parent 84d04ed6ed
commit 44966e19e9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,11 +20,20 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
function BreadcrumbsItemLink({ function BreadcrumbsItemLink({
children, children,
href, href,
isLast,
}: { }: {
children: ReactNode; children: ReactNode;
href?: string; href: string | undefined;
isLast: boolean;
}): JSX.Element { }): JSX.Element {
const className = 'breadcrumbs__link'; const className = 'breadcrumbs__link';
if (isLast) {
return (
<span className={className} itemProp="name">
{children}
</span>
);
}
return href ? ( return href ? (
<Link className={className} href={href} itemProp="item"> <Link className={className} href={href} itemProp="item">
<span itemProp="name">{children}</span> <span itemProp="name">{children}</span>
@ -93,17 +102,16 @@ export default function DocBreadcrumbs(): JSX.Element | null {
itemScope itemScope
itemType="https://schema.org/BreadcrumbList"> itemType="https://schema.org/BreadcrumbList">
{homePageRoute && <HomeBreadcrumbItem />} {homePageRoute && <HomeBreadcrumbItem />}
{breadcrumbs.map((item, idx) => ( {breadcrumbs.map((item, idx) => {
<BreadcrumbsItem const isLast = idx === breadcrumbs.length - 1;
key={idx} return (
active={idx === breadcrumbs.length - 1} <BreadcrumbsItem key={idx} active={isLast} index={idx}>
index={idx}> <BreadcrumbsItemLink href={item.href} isLast={isLast}>
<BreadcrumbsItemLink {item.label}
href={idx < breadcrumbs.length - 1 ? item.href : undefined}> </BreadcrumbsItemLink>
{item.label} </BreadcrumbsItem>
</BreadcrumbsItemLink> );
</BreadcrumbsItem> })}
))}
</ul> </ul>
</nav> </nav>
); );