Releases: withastro/starlight
@astrojs/[email protected]
Minor Changes
-
#2931
10b93b3
Thanks @HiDeoo! - Adds support for thetitle
,frame
, andmeta
fence attributes to code blocks.These new optional attributes add support for Expressive Code text & line markers. The following example renders a code block using a terminal frame with a title:
```js {% title="editor.exe" frame="terminal" %} console.log('Hello, world!'); ```
Any other text or line markers should be specified using the
meta
fence attribute. For example, the following code block renders a code block using thediff
syntax combined with thejs
language syntax highlighting and themarkers
text highlighted:```diff {% meta="lang=js 'markers'" %} function thisIsJavaScript() { // This entire block gets highlighted as JavaScript, // and we can still add diff markers to it! - console.log('Old code to be removed') + console.log('New and shiny code!') } ```
To learn more about all the available options, check out the Expressive Code documentation.
@astrojs/[email protected]
Patch Changes
-
#2926
c0170fd
Thanks @resoltico! - Adds Latvian language support -
#2918
790c000
Thanks @HiDeoo! - Fixes a trailing slash inconsistency in generated sidebar links when using thetrailingSlash: 'ignore'
Astro option (the default) between internal and auto-generated links. Starlight behavior for this configuration value is to use a trailing slash as many common hosting providers redirect to URLs with a trailing slash by default.
@astrojs/[email protected]
@astrojs/[email protected]
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.
Patch Changes
@astrojs/[email protected]
@astrojs/[email protected]
Minor Changes
-
#2822
e56586a
Thanks @KianNH! - Adds a newclientOptionsModule
plugin option to support configuring unserializable DocSearch options such asresultsFooterComponent()
.See “DocSearch configuration” in the Starlight docs for more details.
@astrojs/[email protected]
Patch Changes
- #2805
ed6f9fd
Thanks @HiDeoo! - Exposes theStarlightIcon
TypeScript type referencing the names of Starlight’s built-in icons.
@astrojs/[email protected]
Minor Changes
-
#2777
88f4214
Thanks @hippotastic! - Updatesastro-expressive-code
dependency to the latest version (0.40).This includes an update to the latest Shiki version (1.26.1), providing access to all current Shiki themes and syntax highlighting languages, and adding the config options
shiki.engine
,shiki.bundledLangs
,shiki.langAlias
andremoveUnusedThemes
. It also adds new style variants to the optional collapsible sections plugin.See the Expressive Code release notes for full details.
-
#2736
29a885b
Thanks @delucis! -⚠️ BREAKING CHANGE: The minimum supported version of Astro is now 5.1.5Please update Astro and Starlight together:
npx @astrojs/upgrade
-
#2728
e187383
Thanks @delucis! - Updates minimum Pagefind dependency to v1.3.0, sets new defaults for Pagefind’s ranking options, and adds support for manually configuring the ranking optionsThe new ranking option defaults have been evaluated against Starlight’s own docs to improve the quality of search results. See “Customize Pagefind's result ranking” for more details about how they work.
-
#157
23bf960
Thanks @tony-sull! - Adds a print stylesheet to improve the appearance of Starlight docs pages when printed -
#2728
e187383
Thanks @delucis! - Fixes Pagefind logging to respect the Astro log level. When using Astro’s--verbose
or--silent
CLI flags, these are now respected by Pagefind as well.
Patch Changes
-
#2792
412effb
Thanks @dhruvkb! - Uses semanticvar(--sl-color-hairline)
for the page sidebar border instead ofvar(--sl-color-gray-6)
. This is visually the same as previously but makes it easier to override the hairline color consistently across a site. -
#2736
29a885b
Thanks @delucis! - Updates internal dependencies@astrojs/sitemap
and@astrojs/mdx
to the latest versions -
#2782
d9d415b
Thanks @delucis! - Fixes a documentation link in the JSDoc comment for theStarlightExpressiveCodeOptions
type -
#2708
442c819
Thanks @delucis! - Fixes colour contrast correction in code blocks