starlight-versions 0.8.2 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/libs/starlight.ts +36 -8
- package/libs/versions.ts +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# starlight-versions
|
|
2
2
|
|
|
3
|
+
## 0.9.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#68](https://github.com/HiDeoo/starlight-versions/pull/68) [`e313164`](https://github.com/HiDeoo/starlight-versions/commit/e31316400efde94bf27ac1b577e8867beecb27df) Thanks [@HiDeoo](https://github.com/HiDeoo)! - ⚠️ **BREAKING CHANGE:** The minimum supported version of Starlight is now `0.39.0`.
|
|
8
|
+
|
|
9
|
+
Please use the `@astrojs/upgrade` command to upgrade your project:
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npx @astrojs/upgrade
|
|
13
|
+
```
|
|
14
|
+
|
|
3
15
|
## 0.8.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/libs/starlight.ts
CHANGED
|
@@ -36,10 +36,7 @@ export function getDocLocale(slug: string, starlightConfig: StarlightUserConfig)
|
|
|
36
36
|
return locales.find((locale) => locale === localeSegment)
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
export function addPrefixToSidebarConfig(
|
|
40
|
-
prefix: string,
|
|
41
|
-
sidebar: NonNullable<StarlightSidebarUserConfig>,
|
|
42
|
-
): NonNullable<StarlightSidebarUserConfig> {
|
|
39
|
+
export function addPrefixToSidebarConfig(prefix: string, sidebar: SidebarConfigInputItem[]): SidebarConfig {
|
|
43
40
|
return sidebar.map((item) => {
|
|
44
41
|
if (typeof item === 'string') {
|
|
45
42
|
return addPrefixToSlug(prefix, item)
|
|
@@ -48,13 +45,12 @@ export function addPrefixToSidebarConfig(
|
|
|
48
45
|
...item,
|
|
49
46
|
items: addPrefixToSidebarConfig(prefix, item.items),
|
|
50
47
|
}
|
|
48
|
+
} else if (isSidebarLegacyAutoGroup(item)) {
|
|
49
|
+
return addPrefixToLegacyAutogeneratedGroup(prefix, item)
|
|
51
50
|
} else if ('autogenerate' in item) {
|
|
52
51
|
return {
|
|
53
52
|
...item,
|
|
54
|
-
autogenerate:
|
|
55
|
-
...item.autogenerate,
|
|
56
|
-
directory: path.posix.join(prefix, item.autogenerate.directory),
|
|
57
|
-
},
|
|
53
|
+
autogenerate: addPrefixToAutogenerate(prefix, item.autogenerate),
|
|
58
54
|
}
|
|
59
55
|
} else if ('slug' in item) {
|
|
60
56
|
return {
|
|
@@ -75,6 +71,31 @@ export function addPrefixToSidebarConfig(
|
|
|
75
71
|
})
|
|
76
72
|
}
|
|
77
73
|
|
|
74
|
+
function isSidebarLegacyAutoGroup(item: SidebarConfigInputItem): item is SidebarLegacyAutoGroup {
|
|
75
|
+
return typeof item === 'object' && 'autogenerate' in item && 'label' in item
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function addPrefixToLegacyAutogeneratedGroup(prefix: string, item: SidebarLegacyAutoGroup): SidebarConfigItem {
|
|
79
|
+
const { autogenerate: legacyAutogenerate, ...group } = item
|
|
80
|
+
const autogenerate = addPrefixToAutogenerate(prefix, legacyAutogenerate)
|
|
81
|
+
|
|
82
|
+
if (group.collapsed !== undefined && autogenerate.collapsed === undefined) {
|
|
83
|
+
autogenerate.collapsed = group.collapsed
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return {
|
|
87
|
+
...group,
|
|
88
|
+
items: [{ autogenerate }],
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function addPrefixToAutogenerate<T extends { directory: string }>(prefix: string, autogenerate: T): T {
|
|
93
|
+
return {
|
|
94
|
+
...autogenerate,
|
|
95
|
+
directory: path.posix.join(prefix, autogenerate.directory),
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
78
99
|
function addPrefixToSlug(prefix: string, slug: string) {
|
|
79
100
|
if (slug === '' || slug === 'index') return prefix
|
|
80
101
|
return `${prefix}/${slug}`
|
|
@@ -97,4 +118,11 @@ interface StarlightFrontmatteHero {
|
|
|
97
118
|
export type StarlightUserConfig = HookParameters<'config:setup'>['config']
|
|
98
119
|
export type StarlightSidebarUserConfig = StarlightUserConfig['sidebar']
|
|
99
120
|
|
|
121
|
+
type SidebarConfig = NonNullable<StarlightSidebarUserConfig>
|
|
122
|
+
type SidebarConfigItem = SidebarConfig[number]
|
|
123
|
+
type SidebarAutogenerateConfig = Extract<SidebarConfigItem, { autogenerate: { directory: string } }>['autogenerate']
|
|
124
|
+
type SidebarGroupConfig = Extract<SidebarConfigItem, { items: SidebarConfig }>
|
|
125
|
+
type SidebarLegacyAutoGroup = Omit<SidebarGroupConfig, 'items'> & { autogenerate: SidebarAutogenerateConfig }
|
|
126
|
+
type SidebarConfigInputItem = SidebarConfigItem | SidebarLegacyAutoGroup
|
|
127
|
+
|
|
100
128
|
export type StarlightSidebar = StarlightRouteData['sidebar']
|
package/libs/versions.ts
CHANGED
|
@@ -303,7 +303,7 @@ async function getSidebarVersionGroup(version: Version, srcDir: URL) {
|
|
|
303
303
|
if (!versionConfig.sidebar) {
|
|
304
304
|
return {
|
|
305
305
|
label: version.slug,
|
|
306
|
-
autogenerate: { directory: version.slug },
|
|
306
|
+
items: [{ autogenerate: { directory: version.slug } }],
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "starlight-versions",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Starlight plugin to version documentation pages.",
|
|
6
6
|
"author": "HiDeoo <github@hideoo.dev> (https://hideoo.dev)",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"vitest": "^4.0.18"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"@astrojs/starlight": ">=0.
|
|
41
|
+
"@astrojs/starlight": ">=0.39.0"
|
|
42
42
|
},
|
|
43
43
|
"engines": {
|
|
44
44
|
"node": ">=22.12.0"
|