diff --git a/docs/reference/_category_.json b/docs/reference/_category_.json index d6302ac2..1a36ae90 100644 --- a/docs/reference/_category_.json +++ b/docs/reference/_category_.json @@ -1,10 +1,6 @@ { - "label": "Reference", - "position": 4, "link": { - "type": "generated-index", - "title": "Reference Documentation", - "description": "Reference documentation and technical specifications", - "keywords": ["reference", "specifications"] + "type": "doc", + "id": "reference/index" } } diff --git a/docusaurus.config.ts b/docusaurus.config.ts index e91d0ce6..40bfb6a3 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -83,14 +83,65 @@ const config: Config = { includeCurrentVersion: false, versions: { '4.6': { - banner: 'none', // No banner for this version + // No banner for 4.6 as its the latest version + banner: 'none', }, '4.5': { // No banner for 4.5 as its still actively maintained banner: 'none', }, }, + // Converts npm commands in markdown code blocks to show npm/yarn/pnpm tabs remarkPlugins: [[require('@docusaurus/remark-plugin-npm2yarn'), { sync: true }]], + // Filter out index files that are used as category links + async sidebarItemsGenerator({ defaultSidebarItemsGenerator, ...args }) { + const sidebarItems = await defaultSidebarItemsGenerator(args); + + // Function to recursively process sidebar items + function filterIndexFiles(items: any[]): any[] { + return items + .filter((item) => { + // Filter out index.md files at the root of autogenerated directories + // when they would be duplicates of category links + if (item.type === 'doc' && item.id?.endsWith('/index')) { + // Check if the category metadata has a link to this index + const dirName = args.item?.dirName; + if (dirName && item.id === `${dirName}/index`) { + const categoryMeta = args.categoriesMetadata?.[dirName]; + if (categoryMeta?.link?.type === 'doc' && categoryMeta.link.id === item.id) { + const versionName = args.version?.versionName || 'current'; + console.log(`✂️ 🔗 [v${versionName}] Removing ${item.id} from ${dirName} (category link exists)`); + return false; + } + } + // Keep other index files that are in subcategories + return true; + } + + // Process categories recursively + if (item.type === 'category' && item.items) { + return { + ...item, + items: filterIndexFiles(item.items), + }; + } + + return true; + }) + .map((item) => { + // For categories, recursively filter their items + if (item.type === 'category' && item.items) { + return { + ...item, + items: filterIndexFiles(item.items), + }; + } + return item; + }); + } + + return filterIndexFiles(sidebarItems); + }, }, ], diff --git a/sidebars.ts b/sidebars.ts index f70a5d08..f284d39c 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -45,6 +45,10 @@ const sidebars: SidebarsConfig = { { type: 'category', label: 'Reference', + link: { + type: 'doc', + id: 'reference/index', + }, items: [{ type: 'autogenerated', dirName: 'reference' }], }, ], diff --git a/versioned_docs/version-4.5/reference/_category_.json b/versioned_docs/version-4.5/reference/_category_.json index d6302ac2..1a36ae90 100644 --- a/versioned_docs/version-4.5/reference/_category_.json +++ b/versioned_docs/version-4.5/reference/_category_.json @@ -1,10 +1,6 @@ { - "label": "Reference", - "position": 4, "link": { - "type": "generated-index", - "title": "Reference Documentation", - "description": "Reference documentation and technical specifications", - "keywords": ["reference", "specifications"] + "type": "doc", + "id": "reference/index" } } diff --git a/versioned_docs/version-4.6/reference/_category_.json b/versioned_docs/version-4.6/reference/_category_.json index d6302ac2..1a36ae90 100644 --- a/versioned_docs/version-4.6/reference/_category_.json +++ b/versioned_docs/version-4.6/reference/_category_.json @@ -1,10 +1,6 @@ { - "label": "Reference", - "position": 4, "link": { - "type": "generated-index", - "title": "Reference Documentation", - "description": "Reference documentation and technical specifications", - "keywords": ["reference", "specifications"] + "type": "doc", + "id": "reference/index" } } diff --git a/versioned_sidebars/version-4.5-sidebars.json b/versioned_sidebars/version-4.5-sidebars.json index 11a21717..b160e1f2 100644 --- a/versioned_sidebars/version-4.5-sidebars.json +++ b/versioned_sidebars/version-4.5-sidebars.json @@ -52,6 +52,10 @@ { "type": "category", "label": "Reference", + "link": { + "type": "doc", + "id": "reference/index" + }, "items": [ { "type": "autogenerated", diff --git a/versioned_sidebars/version-4.6-sidebars.json b/versioned_sidebars/version-4.6-sidebars.json index 11a21717..b160e1f2 100644 --- a/versioned_sidebars/version-4.6-sidebars.json +++ b/versioned_sidebars/version-4.6-sidebars.json @@ -52,6 +52,10 @@ { "type": "category", "label": "Reference", + "link": { + "type": "doc", + "id": "reference/index" + }, "items": [ { "type": "autogenerated",