Minor Changes
-
#2390
f493361
Thanks @delucis! - Moves route data toAstro.locals
instead of passing it down via component props⚠️ Breaking change:
Previously, all of Starlight’s templating components, including user or plugin overrides, had access to a data object for the current route viaAstro.props
.
This data is now available asAstro.locals.starlightRoute
instead.To update, refactor any component overrides you have:
- Remove imports of
@astrojs/starlight/props
, which is now deprecated. - Update code that accesses
Astro.props
to useAstro.locals.starlightRoute
instead. - Remove any spreading of
{...Astro.props}
into child components, which is no longer required.
In the following example, a custom override for Starlight’s
LastUpdated
component is updated for the new style:--- import Default from '@astrojs/starlight/components/LastUpdated.astro'; - import type { Props } from '@astrojs/starlight/props'; - const { lastUpdated } = Astro.props; + const { lastUpdated } = Astro.locals.starlightRoute; const updatedThisYear = lastUpdated?.getFullYear() === new Date().getFullYear(); --- {updatedThisYear && ( - <Default {...Astro.props}><slot /></Default> + <Default><slot /></Default> )}
Community Starlight plugins may also need to be manually updated to work with Starlight 0.32. If you encounter any issues, please reach out to the plugin author to see if it is a known issue or if an updated version is being worked on.
- Remove imports of
-
#2578
f895f75
Thanks @HiDeoo! - Deprecates the Starlight pluginsetup
hook in favor of the newconfig:setup
hook which provides the same functionality.⚠️ BREAKING CHANGE:The Starlight plugin
setup
hook is now deprecated and will be removed in a future release. Please update your plugins to use the newconfig:setup
hook instead.export default { name: 'plugin-with-translations', hooks: { - 'setup'({ config }) { + 'config:setup'({ config }) { // Your plugin configuration setup code }, }, };
-
#2578
f895f75
Thanks @HiDeoo! - Exposes the built-in localization system in the Starlight pluginconfig:setup
hook.⚠️ BREAKING CHANGE:This addition changes how Starlight plugins add or update translation strings used in Starlight’s localization APIs.
Plugins previously using theinjectTranslations()
callback function from the pluginconfig:setup
hook should now use the same function available in thei18n:setup
hook.export default { name: 'plugin-with-translations', hooks: { - 'config:setup'({ injectTranslations }) { + 'i18n:setup'({ injectTranslations }) { injectTranslations({ en: { 'myPlugin.doThing': 'Do the thing', }, fr: { 'myPlugin.doThing': 'Faire le truc', }, }); }, }, };
-
#2858
2df9d05
Thanks @XREvo! - Adds support for Pagefind’s multisite search features -
#2578
f895f75
Thanks @HiDeoo! - Adds a newHookParameters
utility type to get the type of a plugin hook’s arguments. -
#2578
f895f75
Thanks @HiDeoo! - Adds a newuseTranslations()
callback function to the Starlight pluginconfig:setup
hook to generate a utility function to access UI strings for a given language. -
#2578
f895f75
Thanks @HiDeoo! - Adds a newabsolutePathToLang()
callback function to the Starlight pluginconfig:setup
to get the language for a given absolute file path.