@hagicode/hagilight-starlight 0.2.3-dev.23.1.f56e71c → 0.2.3-dev.24.1.02be9bf

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.
Files changed (3) hide show
  1. package/Footer.astro +11 -1
  2. package/index.mjs +15 -2
  3. package/package.json +2 -2
package/Footer.astro CHANGED
@@ -7,12 +7,22 @@ interface Props {
7
7
  locale?: string;
8
8
  links?: SiteLinksOptions;
9
9
  rssFeedUrl?: string;
10
+ rssLocaleFeedUrls?: Readonly<Record<string, string>>;
10
11
  }
11
12
 
12
- const { locale = Astro.locals?.starlightRoute?.locale, links, rssFeedUrl } = Astro.props;
13
+ const {
14
+ locale = Astro.locals?.starlightRoute?.locale,
15
+ links,
16
+ rssFeedUrl,
17
+ rssLocaleFeedUrls,
18
+ } = Astro.props;
19
+ const currentLanguage = Astro.locals?.starlightRoute?.lang;
13
20
  const resolvedLinks = resolveSiteLinks(locale, {
14
21
  ...links,
15
22
  ...(rssFeedUrl === undefined ? {} : { rssFeedUrl }),
23
+ ...(currentLanguage && rssLocaleFeedUrls?.[currentLanguage]
24
+ ? { rssLocaleFeedUrl: rssLocaleFeedUrls[currentLanguage] }
25
+ : {}),
16
26
  });
17
27
  ---
18
28
 
package/index.mjs CHANGED
@@ -92,6 +92,7 @@ function createConfiguredIntegration(
92
92
  instanceId,
93
93
  serializedOptions,
94
94
  rssConfig,
95
+ rssLocaleFeedUrls,
95
96
  componentIds,
96
97
  getConfiguredRssFeed,
97
98
  generateRss,
@@ -134,6 +135,7 @@ import options from '${optionsId}';
134
135
  locale={Astro.locals?.starlightRoute?.locale}
135
136
  links={options.links}
136
137
  rssFeedUrl={options.rssFeedUrl}
138
+ rssLocaleFeedUrls={options.rssLocaleFeedUrls}
137
139
  />
138
140
  ${promotionRender}
139
141
  ${analyticsRender}
@@ -185,6 +187,7 @@ const isNotFound = /(?:^|\\/)404(?:\\.html)?\\/?$/u.test(Astro.url.pathname);
185
187
  return `export default ${JSON.stringify({
186
188
  ...serializedOptions,
187
189
  rssFeedUrl: getConfiguredRssFeed(),
190
+ rssLocaleFeedUrls,
188
191
  })};`;
189
192
  }
190
193
  if (moduleId === rssConfigId) return `export default ${JSON.stringify(rssConfig)};`;
@@ -326,13 +329,23 @@ export default function hagilight(options = {}) {
326
329
  throw new Error('Hagilight RSS requires the Astro site option. Set site or disable RSS with rss: { enabled: false }.');
327
330
  }
328
331
  const rssLocales = generateRss ? resolveRssLocales(config.locales) : [];
329
- const rssFeedUrl = generateRss
330
- ? new URL('rss.xml', new URL((astroConfig.base ?? '/').replace(/\/?$/u, '/'), astroConfig.site)).toString()
332
+ const baseUrl = generateRss
333
+ ? new URL((astroConfig.base ?? '/').replace(/\/?$/u, '/'), astroConfig.site)
331
334
  : undefined;
335
+ const rssFeedUrl = baseUrl ? new URL('rss.xml', baseUrl).toString() : undefined;
336
+ const rssLocaleFeedUrls = baseUrl
337
+ ? Object.fromEntries(rssLocales
338
+ .filter(({ filename }) => filename !== 'en')
339
+ .map(({ lang, filename }) => [
340
+ lang,
341
+ new URL(`rss.${filename}.xml`, baseUrl).toString(),
342
+ ]))
343
+ : {};
332
344
  addIntegration(createConfiguredIntegration(
333
345
  instanceId,
334
346
  serializedOptions,
335
347
  { options: rssOptions, locales: rssLocales },
348
+ rssLocaleFeedUrls,
336
349
  componentIds,
337
350
  () => getRssFeedUrl(config) ?? rssFeedUrl,
338
351
  generateRss,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hagicode/hagilight-starlight",
3
- "version": "0.2.3-dev.23.1.f56e71c",
3
+ "version": "0.2.3-dev.24.1.02be9bf",
4
4
  "type": "module",
5
5
  "description": "Starlight customizations for HagiCode documentation",
6
6
  "repository": {
@@ -37,7 +37,7 @@
37
37
  ],
38
38
  "dependencies": {
39
39
  "@astrojs/rss": "^4.0.19",
40
- "@hagicode/hagilight": "0.2.3-dev.23.1.f56e71c"
40
+ "@hagicode/hagilight": "0.2.3-dev.24.1.02be9bf"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "@astrojs/starlight": "^0.42.4",