
🍿 Minor Changes
-
#2390
f493361Thanks @delucis! - Moves route data toAstro.localsinstead 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 via
Astro.props. This data is now available asAstro.locals.starlightRouteinstead.To update, refactor any component overrides you have:
- Remove imports of
@astrojs/starlight/props, which is now deprecated. - Update code that accesses
Astro.propsto useAstro.locals.starlightRouteinstead. - Remove any spreading of
{...Astro.props}into child components, which is no longer required.
In the following example, a custom override for Starlight’s
LastUpdatedcomponent 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
f895f75Thanks @HiDeoo! - Deprecates the Starlight pluginsetuphook in favor of the newconfig:setuphook which provides the same functionality.⚠️ BREAKING CHANGE:
The Starlight plugin
setuphook is now deprecated and will be removed in a future release. Please update your plugins to use the newconfig:setuphook instead.export default {name: 'plugin-with-translations',hooks: {'setup'({ config }) {'config:setup'({ config }) {// Your plugin configuration setup code},},}; -
#2578
f895f75Thanks @HiDeoo! - Exposes the built-in localization system in the Starlight pluginconfig:setuphook.⚠️ BREAKING CHANGE:
This addition changes how Starlight plugins add or update translation strings used in Starlight’s localization APIs. Plugins previously using the
injectTranslations()callback function from the pluginconfig:setuphook should now use the same function available in thei18n:setuphook.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
2df9d05Thanks @XREvo! - Adds support for Pagefind’s multisite search features -
#2578
f895f75Thanks @HiDeoo! - Adds a newHookParametersutility type to get the type of a plugin hook’s arguments. -
#2578
f895f75Thanks @HiDeoo! - Adds a newuseTranslations()callback function to the Starlight pluginconfig:setuphook to generate a utility function to access UI strings for a given language. -
#2578
f895f75Thanks @HiDeoo! - Adds a newabsolutePathToLang()callback function to the Starlight pluginconfig:setupto get the language for a given absolute file path.