forked from withastro/astro
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'next' into arpan-withastro#12252-mdx-islands
- Loading branch information
Showing
198 changed files
with
4,121 additions
and
1,432 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
--- | ||
'astro': minor | ||
--- | ||
|
||
Adds experimental support for built-in SVG components. | ||
|
||
|
||
This feature allows you to import SVG files directly into your Astro project as components. By default, Astro will inline the SVG content into your HTML output. | ||
|
||
To enable this feature, set `experimental.svg` to `true` in your Astro config: | ||
|
||
```js | ||
{ | ||
experimental: { | ||
svg: true, | ||
}, | ||
} | ||
``` | ||
|
||
To use this feature, import an SVG file in your Astro project, passing any common SVG attributes to the imported component. Astro also provides a `size` attribute to set equal `height` and `width` properties: | ||
|
||
```astro | ||
--- | ||
import Logo from './path/to/svg/file.svg'; | ||
--- | ||
<Logo size={24} /> | ||
``` | ||
|
||
For a complete overview, and to give feedback on this experimental API, see the [Feature RFC](https://github.com/withastro/roadmap/pull/1035). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'astro': patch | ||
--- | ||
|
||
Fixes a bug where content config was ignored if it was outside of content dir and has a parent dir with an underscore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'astro': patch | ||
--- | ||
|
||
Handle multiple root nodes on SVG files |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
--- | ||
'astro': minor | ||
--- | ||
|
||
Adds a new `astro:routes:resolved` hook to the Integration API. Also update the `astro:build:done` hook by deprecating `routes` and adding a new `assets` map. | ||
|
||
When building an integration, you can now get access to routes inside the `astro:routes:resolved` hook: | ||
|
||
```js | ||
const integration = () => { | ||
return { | ||
name: 'my-integration', | ||
hooks: { | ||
'astro:routes:resolved': ({ routes }) => { | ||
console.log(routes) | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
|
||
This hook runs before `astro:config:done`, and whenever a route changes in development. | ||
|
||
The `routes` array from `astro:build:done` is now deprecated, and exposed properties are now available on `astro:routes:resolved`, except for `distURL`. For this, you can use the newly exposed `assets` map: | ||
|
||
```diff | ||
const integration = () => { | ||
+ let routes | ||
return { | ||
name: 'my-integration', | ||
hooks: { | ||
+ 'astro:routes:resolved': (params) => { | ||
+ routes = params.routes | ||
+ }, | ||
'astro:build:done': ({ | ||
- routes | ||
+ assets | ||
}) => { | ||
+ for (const route of routes) { | ||
+ const distURL = assets.get(route.pattern) | ||
+ if (distURL) { | ||
+ Object.assign(route, { distURL }) | ||
+ } | ||
+ } | ||
console.log(routes) | ||
} | ||
} | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,90 @@ | ||
--- | ||
'astro': patch | ||
'astro': minor | ||
--- | ||
|
||
Adds experimental reponsive image support | ||
Adds experimental support for automatic responsive images | ||
|
||
This feature is experimental and may change in future versions. To enable it, set `experimental.responsiveImages` to `true` in your `astro.config.mjs` file. | ||
|
||
```js title=astro.config.mjs | ||
{ | ||
experimental: { | ||
responsiveImages: true, | ||
}, | ||
} | ||
``` | ||
|
||
When this flag is enabled, you can pass a `layout` prop to any `<Image />` or `<Picture />` component to create a responsive image. When a layout is set, images have automatically generated `srcset` and `sizes` attributes based on the image's dimensions and the layout type. Images with `responsive` and `full-width` layouts will have styles applied to ensure they resize according to their container. | ||
|
||
```astro | ||
--- | ||
import { Image, Picture } from 'astro:assets'; | ||
import myImage from '../assets/my_image.png'; | ||
--- | ||
<Image src={myImage} alt="A description of my image." layout='responsive' width={800} height={600} /> | ||
<Picture src={myImage} alt="A description of my image." layout='full-width' formats={['avif', 'webp', 'jpeg']} /> | ||
``` | ||
This `<Image />` component will generate the following HTML output: | ||
```html title=Output | ||
|
||
<img | ||
src="/_astro/my_image.hash3.webp" | ||
srcset="/_astro/my_image.hash1.webp 640w, | ||
/_astro/my_image.hash2.webp 750w, | ||
/_astro/my_image.hash3.webp 800w, | ||
/_astro/my_image.hash4.webp 828w, | ||
/_astro/my_image.hash5.webp 1080w, | ||
/_astro/my_image.hash6.webp 1280w, | ||
/_astro/my_image.hash7.webp 1600w" | ||
alt="A description of my image" | ||
sizes="(min-width: 800px) 800px, 100vw" | ||
loading="lazy" | ||
decoding="async" | ||
fetchpriority="auto" | ||
width="800" | ||
height="600" | ||
style="--w: 800; --h: 600; --fit: cover; --pos: center;" | ||
data-astro-image="responsive" | ||
> | ||
``` | ||
|
||
#### Responsive image properties | ||
|
||
These are additional properties available to the `<Image />` and `<Picture />` components when responsive images are enabled: | ||
|
||
- `layout`: The layout type for the image. Can be `responsive`, `fixed`, `full-width` or `none`. Defaults to value of `image.experimentalLayout`. | ||
- `fit`: Defines how the image should be cropped if the aspect ratio is changed. Values match those of CSS `object-fit`. Defaults to `cover`, or the value of `image.experimentalObjectFit` if set. | ||
- `position`: Defines the position of the image crop if the aspect ratio is changed. Values match those of CSS `object-position`. Defaults to `center`, or the value of `image.experimentalObjectPosition` if set. | ||
- `priority`: If set, eagerly loads the image. Otherwise images will be lazy-loaded. Use this for your largest above-the-fold image. Defaults to `false`. | ||
|
||
#### Default responsive image settings | ||
|
||
You can enable responsive images for all `<Image />` and `<Picture />` components by setting `image.experimentalLayout` with a default value. This can be overridden by the `layout` prop on each component. | ||
|
||
**Example:** | ||
```js title=astro.config.mjs | ||
{ | ||
image: { | ||
// Used for all `<Image />` and `<Picture />` components unless overridden | ||
experimentalLayout: 'responsive', | ||
}, | ||
experimental: { | ||
responsiveImages: true, | ||
}, | ||
} | ||
``` | ||
|
||
```astro | ||
--- | ||
import { Image } from 'astro:assets'; | ||
import myImage from '../assets/my_image.png'; | ||
--- | ||
<Image src={myImage} alt="This will use responsive layout" width={800} height={600} /> | ||
<Image src={myImage} alt="This will use full-width layout" layout="full-width" /> | ||
<Image src={myImage} alt="This will disable responsive images" layout="none" /> | ||
``` | ||
|
||
For a complete overview, and to give feedback on this experimental API, see the [Responsive Images RFC](https://github.com/withastro/roadmap/blob/responsive-images/proposals/0053-responsive-images.md). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'astro': patch | ||
--- | ||
|
||
Fix SVG Component sprite references |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'astro': patch | ||
--- | ||
|
||
Call server island early so it can set headers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
--- | ||
'@astrojs/react': minor | ||
'astro': minor | ||
--- | ||
|
||
Changes the generated URL query param from `_astroAction` to `_action` when submitting a form using Actions. This avoids leaking the framework name into the URL bar, which may be considered a security issue. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
'astro': minor | ||
--- | ||
|
||
Changes the default content config location from `src/content/config.*` to `src/content.config.*`. | ||
|
||
The previous location is still supported, and is required if the `legacy.collections` flag is enabled. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
'@astrojs/mdx': patch | ||
--- | ||
|
||
Fixes a case where the MDX renderer couldn't be loaded when used as a direct dependency of an Astro integration. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.