
⨠Major Changes
-
#9138
abf601233Thanks @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.footnoteBackLabelis changed from"Back to content"to"Back to reference 1". See themdast-util-to-hastcommit for more information. -
#9181
cdabf6ef0Thanks @bluwy! - Removes support for returning simple objects from endpoints (deprecated since Astro 3.0). You should return aResponseinstead.ResponseWithEncodingis 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
MiddlewareHandlerinstead ofMiddlewareResponseHandler. If you useddefineMiddleware()to type the function, no changes are needed. -
#9263
3cbd8ea75Thanks @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-imagetype. You should use theastro/clienttype instead. - Removes deprecated built-in
rsssupport ingetStaticPaths. You should use@astrojs/rssinstead. - Removes deprecated
Astro.request.paramssupport. You should useAstro.paramsinstead.
-
#9271
47604bd5bThanks @matthewp! - Renames Dev Overlay to Dev ToolbarThe 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
1c48ed286Thanks @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
c421a3d17Thanks @natemoo-re! - Removes the opt-inhandleFormsproperty for<ViewTransitions />. Form submissions are now handled by default and this property is no longer necessary. This default behavior can be disabled by settingdata-astro-reloadon relevant<form />elements. -
#9196
37697a2c5Thanks @bluwy! - Removes support for Shiki custom languageāspathproperty. 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
49aa215a0Thanks @lilnasy! - This change only affects maintainers of third-party adapters. In the Integration API, theapp.render()method of theAppclass has been simplified.Instead of two optional arguments, it now takes a single optional argument that is an object with two optional properties:
routeDataandlocals.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
c0383ea0cThanks @alexanderniebuhr! - Removes deprecatedapp.match()option,matchNotFound -
#9168
153a5abb9Thanks @bluwy! - Removes deprecated features from Astro 3.0- Adapters are now required to pass
supportedAstroFeaturesto specify a list of features they support. - The
build.splitandbuild.excludeMiddlewareoptions are removed. UsefunctionPerRouteandedgeMiddlewarefrom adapters instead. - The
markdown.draftsoption 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. UsegetHeadings()instead.
- Adapters are now required to pass
šæ Minor Changes
-
#9105
6201bbe96Thanks @FredKSchott! - Update CLI logging experience -
#9200
b4b851f5aThanks @ematipico! - Adds a new way to configure thei18n.localesarray.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 computingAstro.preferredLocale, Astro will use thecodes. -
#9115
3b77889b4Thanks @natemoo-re! - Adds theastro preferencescommand to manage user preferences. User preferences are specific to individual Astro users, unlike theastro.config.mjsfile 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.jsonfile. Using the--globalflag, 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.Terminal window # Disable the dev overlay for the current user in the current projectnpm run astro preferences disable devOverlay# Disable the dev overlay for the current user in all Astro projects on this machinenpm run astro preferences --global disable devOverlay# Check if the dev overlay is enabled for the current usernpm run astro preferences list devOverlay -
#9139
459b26436Thanks @bluwy! - Reworks Viteās logger to use Astroās logger to correctly log HMR messages -
#9279
6a9669b81Thanks @martrapp! - Improves consistency between navigations with and without<ViewTransitions>. See #9279 for more details. -
#9161
bd0c2e9aeThanks @bluwy! - Renames theentryPointproperty of theinjectRouteintegrations API toentrypointfor consistency. A warning will be shown prompting you to update your code when using the old name. -
#9129
8bfc20511Thanks @FredKSchott! - Update error log formatting
š Patch Changes
-
#9118
000e8f465Thanks @Princesseuh! - Redesign Dev Overlay main screen to show more information, such as the coolest integrations, your current Astro version and more. -
#9118
000e8f465Thanks @Princesseuh! - Fixes an issue where links with the same pathname as the current page, but different search params, were not prefetched. -
#9275
0968cb1a3Thanks @lilnasy! - Fixes an issue where html annotations relevant only to the dev server were included in the production build. -
#9252
7b74ec4baThanks @ematipico! - Consistently emit fallback routes in the correct folders, and emit routes that considertrailingSlash -
#9222
279e3c1b3Thanks @matthewp! - Ensure the dev-overlay-window is anchored to the bottom -
#9292
5428b3da0Thanks @natemoo-re! - Improves display forastro preferences listcommand -
#9235
9c2342c32Thanks @Princesseuh! - Fix SVG icons not showing properly in the extended dropdown menu of the dev overlay -
#9218
f4401c8c1Thanks @matthewp! - Improve high contrast mode with the Dev Overlay -
#9254
b750a161eThanks @matthewp! - Improve highlight/tooltip positioning when in fixed positions -
#9230
60cfa49e4Thanks @FredKSchott! - Update the look and feel of the dev overlay -
#9248
43ddb5217Thanks @martrapp! - Adds properties of the submit button (name, value) to the form data of a view transition -
#9170
8a228fce0Thanks @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
0fe3a7ed5Thanks @bluwy! - Removes vendored ViteāsimportMeta.d.tsfile in favour of Vite 5ās newvite/types/import-meta.d.tsexport -
#9295
3d2dbb0e5Thanks @matthewp! - Remove aria-query packageThis is another CJS-only package that breaks usage.
-
#9274
feaba2c7fThanks @TheOtterlord! - Fix routing prefixes whenprefixDefaultLocaleistrue -
#9273
9887f2412Thanks @alexanderniebuhr! - Exports type for Dev Toolbar App under correct name -
#9150
710be505cThanks @bluwy! - Refactors virtual modules exports. This should not break your project unless you import Astroās internal modules, including:astro/middleware/namespaceastro/transitionsastro/transitions/routerastro/transitions/eventsastro/transitions/typesastro/prefetchastro/i18n
-
#9227
4b8a42406Thanks @matthewp! - Ensure overlay x-ray z-index is higher than the island -
#9255
9ea3e0b94Thanks @matthewp! - Adds instructions on how to hide the dev overlay -
#9293
cf5fa4376Thanks @matthewp! - Removes the āa11y-role-has-required-aria-propsā audit ruleThis audit rule depends on a CommonJS module. To prevent blocking the 4.0 release the rule is being removed temporarily.
-
#9214
4fe523b00Thanks @Princesseuh! - Fixes a number of small user experience bugs with the dev overlay -
#9013
ff8eadb95Thanks @bayssmekanique! - Returns the updated config in the integrationastro:config:setuphookāsupdateConfig()API -
Updated dependencies [
abf601233,addb57c8e,c7953645e]:- @astrojs/markdown-remark@4.0.0