diff options
author | HiDeoo | 2025-07-14 13:14:08 +0200 |
---|---|---|
committer | GitHub | 2025-07-14 13:14:08 +0200 |
commit | 88f0d349ee4e8c42bd38adc01031edf4c7b92342 (patch) | |
tree | eb8789518238d51efb38b4446078b73a89e4d4d9 | |
parent | 5cba9fe7d0b335ffc1c0bf34d35ccad39c277923 (diff) | |
download | IT.starlight-88f0d349ee4e8c42bd38adc01031edf4c7b92342.tar.gz IT.starlight-88f0d349ee4e8c42bd38adc01031edf4c7b92342.tar.bz2 IT.starlight-88f0d349ee4e8c42bd38adc01031edf4c7b92342.zip |
Fix slug override with `/` value (#3293)
Co-authored-by: Armand Philippot <git@armand.philippot.eu>
-rw-r--r-- | .changeset/popular-planets-whisper.md | 5 | ||||
-rw-r--r-- | packages/starlight/__tests__/basics/slugs.test.ts | 3 | ||||
-rw-r--r-- | packages/starlight/utils/slugs.ts | 2 |
3 files changed, 9 insertions, 1 deletions
diff --git a/.changeset/popular-planets-whisper.md b/.changeset/popular-planets-whisper.md new file mode 100644 index 00000000..85dd9fa3 --- /dev/null +++ b/.changeset/popular-planets-whisper.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': patch +--- + +Fixes an issue preventing to override the slug of a page with the [`slug` frontmatter property](https://starlight.astro.build/reference/frontmatter/#slug) using the `/` value. diff --git a/packages/starlight/__tests__/basics/slugs.test.ts b/packages/starlight/__tests__/basics/slugs.test.ts index a3f8f399..0a42b957 100644 --- a/packages/starlight/__tests__/basics/slugs.test.ts +++ b/packages/starlight/__tests__/basics/slugs.test.ts @@ -31,6 +31,9 @@ describe('slugToParam', () => { test('returns undefined for root index', () => { expect(slugToParam('index')).toBeUndefined(); }); + test('returns undefined for /', () => { + expect(slugToParam('/')).toBeUndefined(); + }); test('strips index from end of nested slug', () => { expect(slugToParam('dir/index')).toBe('dir'); expect(slugToParam('dir/index/sub-dir/index')).toBe('dir/index/sub-dir'); diff --git a/packages/starlight/utils/slugs.ts b/packages/starlight/utils/slugs.ts index c54e095d..996a624a 100644 --- a/packages/starlight/utils/slugs.ts +++ b/packages/starlight/utils/slugs.ts @@ -40,7 +40,7 @@ function localeToDir(locale: string | undefined): 'ltr' | 'rtl' { } export function slugToParam(slug: string): string | undefined { - return slug === 'index' || slug === '' + return slug === 'index' || slug === '' || slug === '/' ? undefined : slug.endsWith('/index') ? slug.slice(0, -6) |