diff --git a/.changeset/metal-needles-shout.md b/.changeset/metal-needles-shout.md new file mode 100644 index 0000000000..4ea11e12ea --- /dev/null +++ b/.changeset/metal-needles-shout.md @@ -0,0 +1,5 @@ +--- +"@astrojs/starlight": patch +--- + +Fix false positive in sidebar autogeneration logic diff --git a/packages/starlight/utils/navigation.ts b/packages/starlight/utils/navigation.ts index ae4f918bf8..1d5a176469 100644 --- a/packages/starlight/utils/navigation.ts +++ b/packages/starlight/utils/navigation.ts @@ -65,7 +65,13 @@ function groupFromAutogenerateConfig( ): Group { const { directory } = item.autogenerate; const localeDir = locale ? locale + '/' + directory : directory; - const dirDocs = routes.filter((doc) => doc.slug.startsWith(localeDir)); + const dirDocs = routes.filter( + (doc) => + // Match against `foo.md` or `foo/index.md`. + doc.slug === localeDir || + // Match against `foo/anything/else.md`. + doc.slug.startsWith(localeDir + '/') + ); const tree = treeify(dirDocs, localeDir); return { type: 'group',