From ba16ccc1cd83e52a5dc2c5a544f7739afffdd970 Mon Sep 17 00:00:00 2001 From: Abdullah Saud <43924652+Abdullah-03@users.noreply.github.com> Date: Sat, 6 Apr 2024 00:08:55 +0500 Subject: [PATCH 1/3] Fixes the case where a doc without title or H1 would revert to using file name as pagination label rather than the sidebar 'label' defined through item definition Fixes #9781 --- .../docusaurus-plugin-content-docs/src/sidebars/utils.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts index e716be9ba0e3..d42c36878d46 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts @@ -478,7 +478,7 @@ Available document ids are: }; } -export function toDocNavigationLink(doc: DocMetadataBase): PropNavigationLink { +export function toDocNavigationLink(doc: DocMetadataBase, sidebarItemLabel?:string | undefined): PropNavigationLink { const { title, permalink, @@ -487,7 +487,7 @@ export function toDocNavigationLink(doc: DocMetadataBase): PropNavigationLink { sidebar_label: sidebarLabel, }, } = doc; - return {title: paginationLabel ?? sidebarLabel ?? title, permalink}; + return {title: paginationLabel ?? sidebarLabel ?? sidebarItemLabel ?? title, permalink}; } export function toNavigationLink( @@ -510,11 +510,11 @@ export function toNavigationLink( if (navigationItem.type === 'category') { return navigationItem.link.type === 'doc' - ? toDocNavigationLink(getDocById(navigationItem.link.id)) + ? toDocNavigationLink(getDocById(navigationItem.link.id), navigationItem?.label) : { title: navigationItem.label, permalink: navigationItem.link.permalink, }; } - return toDocNavigationLink(getDocById(navigationItem.id)); + return toDocNavigationLink(getDocById(navigationItem.id), navigationItem?.label); } From e8463ebc5410ecfe68a5c7a8cf28910b67a7e593 Mon Sep 17 00:00:00 2001 From: Abdullah Saud <43924652+Abdullah-03@users.noreply.github.com> Date: Sun, 7 Apr 2024 14:57:10 +0500 Subject: [PATCH 2/3] Fix failed test cases with category link labels and resolve formatting issues --- .../src/sidebars/utils.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts index d42c36878d46..0f4afb501fb0 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts @@ -478,7 +478,10 @@ Available document ids are: }; } -export function toDocNavigationLink(doc: DocMetadataBase, sidebarItemLabel?:string | undefined): PropNavigationLink { +export function toDocNavigationLink( + doc: DocMetadataBase, + sidebarItemLabel?: string | undefined, +): PropNavigationLink { const { title, permalink, @@ -487,7 +490,10 @@ export function toDocNavigationLink(doc: DocMetadataBase, sidebarItemLabel?:stri sidebar_label: sidebarLabel, }, } = doc; - return {title: paginationLabel ?? sidebarLabel ?? sidebarItemLabel ?? title, permalink}; + return { + title: paginationLabel ?? sidebarLabel ?? sidebarItemLabel ?? title, + permalink, + }; } export function toNavigationLink( @@ -510,11 +516,14 @@ export function toNavigationLink( if (navigationItem.type === 'category') { return navigationItem.link.type === 'doc' - ? toDocNavigationLink(getDocById(navigationItem.link.id), navigationItem?.label) + ? toDocNavigationLink(getDocById(navigationItem.link.id)) : { title: navigationItem.label, permalink: navigationItem.link.permalink, }; } - return toDocNavigationLink(getDocById(navigationItem.id), navigationItem?.label); + return toDocNavigationLink( + getDocById(navigationItem.id), + navigationItem?.label, + ); } From dea319679fd6fb7396a093e7d1e14b886529d37e Mon Sep 17 00:00:00 2001 From: sebastien Date: Thu, 11 Apr 2024 18:13:27 +0200 Subject: [PATCH 3/3] unit test --- .../src/sidebars/__tests__/utils.test.ts | 34 +++++++++++++++++++ .../src/sidebars/utils.ts | 12 +++---- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/utils.test.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/utils.test.ts index 5c69d9ed8af9..dcc17131a574 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/utils.test.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/__tests__/utils.test.ts @@ -719,6 +719,22 @@ describe('toDocNavigationLink', () => { } as PropNavigationLink); }); + it('with sidebar item label', () => { + expect( + toDocNavigationLink( + testDoc({ + title: 'Doc Title', + permalink: '/docPermalink', + frontMatter: {}, + }), + {sidebarItemLabel: 'Doc sidebar item label'}, + ), + ).toEqual({ + title: 'Doc sidebar item label', + permalink: '/docPermalink', + } as PropNavigationLink); + }); + it('with pagination_label + sidebar_label front matter', () => { expect( toDocNavigationLink( @@ -736,6 +752,24 @@ describe('toDocNavigationLink', () => { permalink: '/docPermalink', } as PropNavigationLink); }); + + it('with sidebar_label + sidebar item label', () => { + expect( + toDocNavigationLink( + testDoc({ + title: 'Doc Title', + permalink: '/docPermalink', + frontMatter: { + sidebar_label: 'sidebar_label', + }, + }), + {sidebarItemLabel: 'Doc sidebar item label'}, + ), + ).toEqual({ + title: 'sidebar_label', + permalink: '/docPermalink', + } as PropNavigationLink); + }); }); describe('toNavigationLink', () => { diff --git a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts index 0f4afb501fb0..2f785a0320fc 100644 --- a/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts +++ b/packages/docusaurus-plugin-content-docs/src/sidebars/utils.ts @@ -480,7 +480,7 @@ Available document ids are: export function toDocNavigationLink( doc: DocMetadataBase, - sidebarItemLabel?: string | undefined, + options?: {sidebarItemLabel?: string | undefined}, ): PropNavigationLink { const { title, @@ -491,7 +491,8 @@ export function toDocNavigationLink( }, } = doc; return { - title: paginationLabel ?? sidebarLabel ?? sidebarItemLabel ?? title, + title: + paginationLabel ?? sidebarLabel ?? options?.sidebarItemLabel ?? title, permalink, }; } @@ -522,8 +523,7 @@ export function toNavigationLink( permalink: navigationItem.link.permalink, }; } - return toDocNavigationLink( - getDocById(navigationItem.id), - navigationItem?.label, - ); + return toDocNavigationLink(getDocById(navigationItem.id), { + sidebarItemLabel: navigationItem?.label, + }); }