Skip to content

Releases: withastro/starlight

@astrojs/[email protected]

07 Apr 16:03
cf3cec1
Compare
Choose a tag to compare

Minor Changes

  • #3026 82deb84 Thanks @HiDeoo! - Fixes a potential list styling issue if the last element of a list item is a <script> tag.

    ⚠️ BREAKING CHANGE:

    This release drops official support for Chromium-based browsers prior to version 105 (released 30 August 2022) and Firefox-based browsers prior to version 121 (released 19 December 2023). You can find a list of currently supported browsers and their versions using this browserslist query.

    With this release, Starlight-generated sites will still work fine on those older browsers except for this small detail in list item styling, but future releases may introduce further breaking changes for impacted browsers, including in patch releases.

  • #3025 f87e9ac Thanks @delucis! - Makes social configuration more flexible.

    ⚠️ BREAKING CHANGE: The social configuration option has changed syntax. You will need to update this in astro.config.mjs when upgrading.

    Previously, a limited set of platforms were supported using a shorthand syntax with labels built in to Starlight. While convenient, this approach was less flexible and required dedicated code for each social platform added.

    Now, you must specify the icon and label for each social link explicitly and you can use any of Starlight’s built-in icons for social links.

    The following example shows updating the old social syntax to the new:

    - social: {
    -   github: 'https://github.com/withastro/starlight',
    -   discord: 'https://astro.build/chat',
    - },
    + social: [
    +   { icon: 'github', label: 'GitHub', href: 'https://github.com/withastro/starlight' },
    +   { icon: 'discord', label: 'Discord', href: 'https://astro.build/chat' },
    + ],
  • #2927 c46904c Thanks @HiDeoo! - Adds the head route data property which contains an array of all tags to include in the <head> of the current page.

    Previously, the <Head> component was responsible for generating a list of tags to include in the <head> of the current page and rendering them.
    This data is now available as Astro.locals.starlightRoute.head instead and can be modified using route data middleware.
    The <Head> component now only renders the tags provided in Astro.locals.starlightRoute.head.

  • #2924 6a56d1b Thanks @HiDeoo! - ⚠️ BREAKING CHANGE: Ensures that the <Badge> and <Icon> components no longer render with a trailing space.

    In Astro, components that include styles render with a trailing space which can prevent some use cases from working as expected, e.g. when using such components inlined with text. This change ensures that the <Badge> and <Icon> components no longer render with a trailing space.

    If you were previously relying on that implementation detail, you may need to update your code to account for this change. For example, considering the following code:

    <Badge text="New" />
    Feature

    The rendered text would previously include a space between the badge and the text due to the trailing space automatically added by the component:

    New Feature
    

    Such code will now render the badge and text without a space:

    NewFeature
    

    To fix this, you can add a space between the badge and the text:

    - <Badge text="New" />Feature
    + <Badge text="New" /> Feature
  • #2727 7c8fa30 Thanks @techfg! - Updates mobile menu toggle styles to display a close icon while the menu is open

Patch Changes

@astrojs/[email protected]

05 Apr 16:24
5073213
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

26 Mar 14:05
0edf4d7
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

21 Mar 12:11
421f8a7
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

21 Mar 12:11
421f8a7
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

18 Mar 13:03
9375aef
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

03 Mar 23:30
929b778
Compare
Choose a tag to compare

Minor Changes

  • #2931 10b93b3 Thanks @HiDeoo! - Adds support for the title, frame, and meta 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 the diff syntax combined with the js language syntax highlighting and the markers 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]

27 Feb 18:26
9a5450d
Compare
Choose a tag to compare

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 the trailingSlash: '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]

19 Feb 23:55
5a7e831
Compare
Choose a tag to compare

Patch Changes

@astrojs/[email protected]

15 Feb 10:46
9b32c6a
Compare
Choose a tag to compare

Minor Changes

  • #2390 f493361 Thanks @delucis! - Moves route data to Astro.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 via Astro.props.
    This data is now available as Astro.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 use Astro.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.

  • #2578 f895f75 Thanks @HiDeoo! - Deprecates the Starlight plugin setup hook in favor of the new config: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 new config: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 plugin config:setup hook.

    ⚠️ 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 plugin config:setup hook should now use the same function available in the i18n: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 new HookParameters utility type to get the type of a plugin hook’s arguments.

  • #2578 f895f75 Thanks @HiDeoo! - Adds a new useTranslations() callback function to the Starlight plugin config:setup hook to generate a utility function to access UI strings for a given language.

  • #2578 f895f75 Thanks @HiDeoo! - Adds a new absolutePathToLang() callback function to the Starlight plugin config:setup to get the language for a given absolute file path.

Patch Changes