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 themdast-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 aResponse
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 ofMiddlewareResponseHandler
. If you useddefineMiddleware()
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 theastro/client
type instead. - Removes deprecated built-in
rss
support ingetStaticPaths
. You should use@astrojs/rss
instead. - Removes deprecated
Astro.request.params
support. You should useAstro.params
instead.
-
#9271
47604bd5b
Thanks @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
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-inhandleForms
property 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-reload
on relevant<form />
elements. -
#9196
37697a2c5
Thanks @bluwy! - Removes support for Shiki custom language'spath
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, theapp.render()
method of theApp
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
andlocals
.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 deprecatedapp.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
andbuild.excludeMiddleware
options are removed. UsefunctionPerRoute
andedgeMiddleware
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. UsegetHeadings()
instead.
- Adapters are now required to pass
Minor Changes
-
#9105
6201bbe96
Thanks @FredKSchott! - Update CLI logging experience -
#9200
b4b851f5a
Thanks @ematipico! - Adds a new way to configure thei18n.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 computingAstro.preferredLocale
, Astro will use thecodes
. -
#9115
3b77889b4
Thanks @natemoo-re! - Adds theastro preferences
command to manage user preferences. User preferences are specific to individual Astro users, unlike theastro.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 theentryPoint
property of theinjectRoute
integrations API toentrypoint
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 considertrailingSlash
-
#9222
279e3c1b3
Thanks @matthewp! - Ensure the dev-overlay-window is anchored to the bottom -
#9292
5428b3da0
Thanks @natemoo-re! - Improves display forastro 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'simportMeta.d.ts
file in favour of Vite 5's newvite/types/import-meta.d.ts
export -
#9295
3d2dbb0e5
Thanks @matthewp! - Remove aria-query packageThis is another CJS-only package that breaks usage.
-
#9274
feaba2c7f
Thanks @TheOtterlord! - Fix routing prefixes whenprefixDefaultLocale
istrue
-
#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 ruleThis 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 integrationastro:config:setup
hook'supdateConfig()
API -
Updated dependencies [
abf601233
,addb57c8e
,c7953645e
]:- @astrojs/markdown-remark@4.0.0