github withastro/astro astro@4.0.0

latest releases: astro@4.15.8, @astrojs/mdx@3.1.7, astro@4.15.7...
9 months ago

Major Changes

  • #9138 abf601233 Thanks @bluwy! - Updates the unified, remark, and rehype dependencies to latest. Make sure to update your custom remark and rehype plugins as well to be compatible with the latest versions.

    Potentially breaking change: The default value of markdown.remarkRehype.footnoteBackLabel is changed from "Back to content" to "Back to reference 1". See the mdast-util-to-hast commit for more information.

  • #9181 cdabf6ef0 Thanks @bluwy! - Removes support for returning simple objects from endpoints (deprecated since Astro 3.0). You should return a Response instead.

    ResponseWithEncoding is also removed. You can refactor the code to return a response with an array buffer instead, which is encoding agnostic.

    The types for middlewares have also been revised. To type a middleware function, you should now use MiddlewareHandler instead of MiddlewareResponseHandler. If you used defineMiddleware() to type the function, no changes are needed.

  • #9263 3cbd8ea75 Thanks @bluwy! - Removes additional deprecated APIs:

    • The Astro preview server now returns a 404 status instead of a 301 redirect when requesting assets from the public directory without a base.
    • Removes special handling when referencing the astro/client-image type. You should use the astro/client type instead.
    • Removes deprecated built-in rss support in getStaticPaths. You should use @astrojs/rss instead.
    • Removes deprecated Astro.request.params support. You should use Astro.params instead.
  • #9271 47604bd5b Thanks @matthewp! - Renames Dev Overlay to Dev Toolbar

    The previously named experimental Dev Overlay is now known as the Astro Dev Toolbar. Overlay plugins have been renamed as Toolbar Apps. All APIs have been updated to reflect this name change.

    To not break existing APIs, aliases for the Toolbar-based names have been created. The previous API names will continue to function but will be deprecated in the future. All documentation has been updated to reflect Toolbar-based names.

  • #9122 1c48ed286 Thanks @bluwy! - Adds Vite 5 support. There are no breaking changes from Astro. Check the Vite migration guide for details of the breaking changes from Vite instead.

  • #9225 c421a3d17 Thanks @natemoo-re! - Removes the opt-in handleForms property for <ViewTransitions />. Form submissions are now handled by default and this property is no longer necessary. This default behavior can be disabled by setting data-astro-reload on relevant <form /> elements.

  • #9196 37697a2c5 Thanks @bluwy! - Removes support for Shiki custom language's path property. The language JSON file should be imported and passed to the option instead.

    // astro.config.js
    + import customLang from './custom.tmLanguage.json'
    
    export default defineConfig({
      markdown: {
        shikiConfig: {
          langs: [
    -       { path: './custom.tmLanguage.json' },
    +       customLang,
          ],
        },
      },
    })
  • #9199 49aa215a0 Thanks @lilnasy! - This change only affects maintainers of third-party adapters. In the Integration API, the app.render() method of the App class has been simplified.

    Instead of two optional arguments, it now takes a single optional argument that is an object with two optional properties: routeData and locals.

     app.render(request)
    
    - app.render(request, routeData)
    + app.render(request, { routeData })
    
    - app.render(request, routeData, locals)
    + app.render(request, { routeData, locals })
    
    - app.render(request, undefined, locals)
    + app.render(request, { locals })

    The current signature is deprecated but will continue to function until next major version.

  • #9212 c0383ea0c Thanks @alexanderniebuhr! - Removes deprecated app.match() option, matchNotFound

  • #9168 153a5abb9 Thanks @bluwy! - Removes deprecated features from Astro 3.0

    • Adapters are now required to pass supportedAstroFeatures to specify a list of features they support.
    • The build.split and build.excludeMiddleware options are removed. Use functionPerRoute and edgeMiddleware from adapters instead.
    • The markdown.drafts option and draft feature is removed. Use content collections instead.
    • Lowercase endpoint names are no longer supported. Use uppercase endpoint names instead.
    • getHeaders() exported from markdown files is removed. Use getHeadings() instead.

Minor Changes

  • #9105 6201bbe96 Thanks @FredKSchott! - Update CLI logging experience

  • #9200 b4b851f5a Thanks @ematipico! - Adds a new way to configure the i18n.locales array.

    Developers can now assign a custom URL path prefix that can span multiple language codes:

    // astro.config.mjs
    export default defineConfig({
      experimental: {
        i18n: {
          defaultLocale: 'english',
          locales: ['de', { path: 'english', codes: ['en', 'en-US'] }, 'fr'],
        },
      },
    });

    With the above configuration, the URL prefix of the default locale will be /english/. When computing Astro.preferredLocale, Astro will use the codes.

  • #9115 3b77889b4 Thanks @natemoo-re! - Adds the astro preferences command to manage user preferences. User preferences are specific to individual Astro users, unlike the astro.config.mjs file which changes behavior for everyone working on a project.

    User preferences are scoped to the current project by default, stored in a local .astro/settings.json file. Using the --global flag, user preferences can also be applied to every Astro project on the current machine. Global user preferences are stored in an operating system-specific location.

    # Disable the dev overlay for the current user in the current project
    npm run astro preferences disable devOverlay
    # Disable the dev overlay for the current user in all Astro projects on this machine
    npm run astro preferences --global disable devOverlay
    
    # Check if the dev overlay is enabled for the current user
    npm run astro preferences list devOverlay
  • #9139 459b26436 Thanks @bluwy! - Reworks Vite's logger to use Astro's logger to correctly log HMR messages

  • #9279 6a9669b81 Thanks @martrapp! - Improves consistency between navigations with and without <ViewTransitions>. See #9279 for more details.

  • #9161 bd0c2e9ae Thanks @bluwy! - Renames the entryPoint property of the injectRoute integrations API to entrypoint for consistency. A warning will be shown prompting you to update your code when using the old name.

  • #9129 8bfc20511 Thanks @FredKSchott! - Update error log formatting

Patch Changes

  • #9118 000e8f465 Thanks @Princesseuh! - Redesign Dev Overlay main screen to show more information, such as the coolest integrations, your current Astro version and more.

  • #9118 000e8f465 Thanks @Princesseuh! - Fixes an issue where links with the same pathname as the current page, but different search params, were not prefetched.

  • #9275 0968cb1a3 Thanks @lilnasy! - Fixes an issue where html annotations relevant only to the dev server were included in the production build.

  • #9252 7b74ec4ba Thanks @ematipico! - Consistently emit fallback routes in the correct folders, and emit routes that consider trailingSlash

  • #9222 279e3c1b3 Thanks @matthewp! - Ensure the dev-overlay-window is anchored to the bottom

  • #9292 5428b3da0 Thanks @natemoo-re! - Improves display for astro preferences list command

  • #9235 9c2342c32 Thanks @Princesseuh! - Fix SVG icons not showing properly in the extended dropdown menu of the dev overlay

  • #9218 f4401c8c1 Thanks @matthewp! - Improve high contrast mode with the Dev Overlay

  • #9254 b750a161e Thanks @matthewp! - Improve highlight/tooltip positioning when in fixed positions

  • #9230 60cfa49e4 Thanks @FredKSchott! - Update the look and feel of the dev overlay

  • #9248 43ddb5217 Thanks @martrapp! - Adds properties of the submit button (name, value) to the form data of a view transition

  • #9170 8a228fce0 Thanks @natemoo-re! - Adds new accessibility audits to the Dev Toolbar's built-in Audits app.

    The audits Astro performs are non-exhaustive and only capable of detecting a handful of common accessibility issues. Please take care to perform a thorough, manual audit of your site to ensure compliance with the Web Content Accessibility Guidelines (WCAG) international standard before publishing your site.

    ๐Ÿงก Huge thanks to the Svelte team for providing the basis of these accessibility audits!

  • #9149 0fe3a7ed5 Thanks @bluwy! - Removes vendored Vite's importMeta.d.ts file in favour of Vite 5's new vite/types/import-meta.d.ts export

  • #9295 3d2dbb0e5 Thanks @matthewp! - Remove aria-query package

    This is another CJS-only package that breaks usage.

  • #9274 feaba2c7f Thanks @TheOtterlord! - Fix routing prefixes when prefixDefaultLocale is true

  • #9273 9887f2412 Thanks @alexanderniebuhr! - Exports type for Dev Toolbar App under correct name

  • #9150 710be505c Thanks @bluwy! - Refactors virtual modules exports. This should not break your project unless you import Astro's internal modules, including:

    • astro/middleware/namespace
    • astro/transitions
    • astro/transitions/router
    • astro/transitions/events
    • astro/transitions/types
    • astro/prefetch
    • astro/i18n
  • #9227 4b8a42406 Thanks @matthewp! - Ensure overlay x-ray z-index is higher than the island

  • #9255 9ea3e0b94 Thanks @matthewp! - Adds instructions on how to hide the dev overlay

  • #9293 cf5fa4376 Thanks @matthewp! - Removes the 'a11y-role-has-required-aria-props' audit rule

    This audit rule depends on a CommonJS module. To prevent blocking the 4.0 release the rule is being removed temporarily.

  • #9214 4fe523b00 Thanks @Princesseuh! - Fixes a number of small user experience bugs with the dev overlay

  • #9013 ff8eadb95 Thanks @bayssmekanique! - Returns the updated config in the integration astro:config:setup hook's updateConfig() API

  • Updated dependencies [abf601233, addb57c8e, c7953645e]:

    • @astrojs/markdown-remark@4.0.0

Don't miss a new astro release

NewReleases is sending notifications on new releases.