diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/astro/CHANGELOG.md | 202 | ||||
-rw-r--r-- | packages/astro/package.json | 2 | ||||
-rw-r--r-- | packages/integrations/lit/CHANGELOG.md | 6 | ||||
-rw-r--r-- | packages/integrations/lit/package.json | 2 | ||||
-rw-r--r-- | packages/integrations/mdx/CHANGELOG.md | 7 | ||||
-rw-r--r-- | packages/integrations/mdx/package.json | 2 | ||||
-rw-r--r-- | packages/markdown/remark/CHANGELOG.md | 6 | ||||
-rw-r--r-- | packages/markdown/remark/package.json | 2 |
8 files changed, 225 insertions, 4 deletions
diff --git a/packages/astro/CHANGELOG.md b/packages/astro/CHANGELOG.md index f35eb7bf2..86793a28f 100644 --- a/packages/astro/CHANGELOG.md +++ b/packages/astro/CHANGELOG.md @@ -1,5 +1,207 @@ # astro +## 3.5.0 + +### Minor Changes + +- [#8869](https://github.com/withastro/astro/pull/8869) [`f5bdfa272`](https://github.com/withastro/astro/commit/f5bdfa272b4270b06bc539c2e382d6730987300c) Thanks [@matthewp](https://github.com/matthewp)! - ## Integration Hooks to add Middleware + + It's now possible in Astro for an integration to add middleware on behalf of the user. Previously when a third party wanted to provide middleware, the user would need to create a `src/middleware.ts` file themselves. Now, adding third-party middleware is as easy as adding a new integration. + + For integration authors, there is a new `addMiddleware` function in the `astro:config:setup` hook. This function allows you to specify a middleware module and the order in which it should be applied: + + ```js + // my-package/middleware.js + import { defineMiddleware } from 'astro:middleware'; + + export const onRequest = defineMiddleware(async (context, next) => { + const response = await next(); + + if (response.headers.get('content-type') === 'text/html') { + let html = await response.text(); + html = minify(html); + return new Response(html, { + status: response.status, + headers: response.headers, + }); + } + + return response; + }); + ``` + + You can now add your integration's middleware and specify that it runs either before or after the application's own defined middleware (defined in `src/middleware.{js,ts}`) + + ```js + // my-package/integration.js + export function myIntegration() { + return { + name: 'my-integration', + hooks: { + 'astro:config:setup': ({ addMiddleware }) => { + addMiddleware({ + entrypoint: 'my-package/middleware', + order: 'pre', + }); + }, + }, + }; + } + ``` + +- [#8854](https://github.com/withastro/astro/pull/8854) [`3e1239e42`](https://github.com/withastro/astro/commit/3e1239e42b99bf069265393dc359bf967fc64902) Thanks [@natemoo-re](https://github.com/natemoo-re)! - Provides a new, experimental build cache for [Content Collections](https://docs.astro.build/en/guides/content-collections/) as part of the [Incremental Build RFC](https://github.com/withastro/roadmap/pull/763). This includes multiple refactors to Astro's build process to optimize how Content Collections are handled, which should provide significant performance improvements for users with many collections. + + Users building a `static` site can opt-in to preview the new build cache by adding the following flag to your Astro config: + + ```js + // astro.config.mjs + export default { + experimental: { + contentCollectionCache: true, + }, + }; + ``` + + When this experimental feature is enabled, the files generated from your content collections will be stored in the [`cacheDir`](https://docs.astro.build/en/reference/configuration-reference/#cachedir) (by default, `node_modules/.astro`) and reused between builds. Most CI environments automatically restore files in `node_modules/` by default. + + In our internal testing on the real world [Astro Docs](https://github.com/withastro/docs) project, this feature reduces the bundling step of `astro build` from **133.20s** to **10.46s**, about 92% faster. The end-to-end `astro build` process used to take **4min 58s** and now takes just over `1min` for a total reduction of 80%. + + If you run into any issues with this experimental feature, please let us know! + + You can always bypass the cache for a single build by passing the `--force` flag to `astro build`. + + ``` + astro build --force + ``` + +- [#8963](https://github.com/withastro/astro/pull/8963) [`fda3a0213`](https://github.com/withastro/astro/commit/fda3a0213b1907fd63076ebc93d92ada3d026461) Thanks [@matthewp](https://github.com/matthewp)! - Form support in View Transitions router + + The `<ViewTransitions />` router can now handle form submissions, allowing the same animated transitions and stateful UI retention on form posts that are already available on `<a>` links. With this addition, your Astro project can have animations in all of these scenarios: + + - Clicking links between pages. + - Making stateful changes in forms (e.g. updating site preferences). + - Manually triggering navigation via the `navigate()` API. + + This feature is opt-in for semver reasons and can be enabled by adding the `handleForms` prop to the `<ViewTransitions /> component: + + ```astro + --- + // src/layouts/MainLayout.astro + import { ViewTransitions } from 'astro:transitions'; + --- + + <html> + <head> + <!-- ... --> + <ViewTransitions handleForms /> + </head> + <body> + <!-- ... --> + </body> + </html> + ``` + + Just as with links, if you don't want the routing handling a form submission, you can opt out on a per-form basis with the `data-astro-reload` property: + + ```astro + --- + // src/components/Contact.astro + --- + + <form class="contact-form" action="/request" method="post" data-astro-reload> + <!-- ...--> + </form> + ``` + + Form support works on post `method="get"` and `method="post"` forms. + +- [#8954](https://github.com/withastro/astro/pull/8954) [`f0031b0a3`](https://github.com/withastro/astro/commit/f0031b0a3959b03d1b28e173982c7e1ca60e735f) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Updates the Image Services API to now delete original images from the final build that are not used outside of the optimization pipeline. For users with a large number of these images (e.g. thumbnails), this should reduce storage consumption and deployment times. + +- [#8984](https://github.com/withastro/astro/pull/8984) [`26b1484e8`](https://github.com/withastro/astro/commit/26b1484e808feee6faca3bd89fb512849a664046) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Adds a new property `propertiesToHash` to the Image Services API to allow specifying which properties of `getImage()` / `<Image />` / `<Picture />` should be used for hashing the result files when doing local transformations. For most services, this will include properties such as `src`, `width` or `quality` that directly changes the content of the generated image. + +- [#9010](https://github.com/withastro/astro/pull/9010) [`100b61ab5`](https://github.com/withastro/astro/commit/100b61ab5a34c1efc571a57ce46832ece97688e5) Thanks [@jasikpark](https://github.com/jasikpark)! - The `<Picture />` component will now use `jpg` and `jpeg` respectively as fallback formats when the original image is in those formats. + +- [#8974](https://github.com/withastro/astro/pull/8974) [`143bacf39`](https://github.com/withastro/astro/commit/143bacf3962f7b0ed3efe2bdfea844e72e10d288) Thanks [@ematipico](https://github.com/ematipico)! - Experimental support for i18n routing. + + Astro's experimental i18n routing API allows you to add your multilingual content with support for configuring a default language, computing relative page URLs, and accepting preferred languages provided by your visitor's browser. You can also specify fallback languages on a per-language basis so that your visitors can always be directed to existing content on your site. + + Enable the experimental routing option by adding an `i18n` object to your Astro configuration with a default location and a list of all languages to support: + + ```js + // astro.config.mjs + import { defineConfig } from 'astro/config'; + + export default defineConfig({ + experimental: { + i18n: { + defaultLocale: 'en', + locales: ['en', 'es', 'pt-br'], + }, + }, + }); + ``` + + Organize your content folders by locale depending on your `i18n.routingStrategy`, and Astro will handle generating your routes and showing your preferred URLs to your visitors. + + ``` + ├── src + │ ├── pages + │ │ ├── about.astro + │ │ ├── index.astro + │ │ ├── es + │ │ │ ├── about.astro + │ │ │ ├── index.astro + │ │ ├── pt-br + │ │ │ ├── about.astro + │ │ │ ├── index.astro + ``` + + Compute relative URLs for your links with `getRelativeLocaleUrl` from the new `astro:i18n` module: + + ```astro + --- + import { getRelativeLocaleUrl } from 'astro:i18n'; + const aboutUrl = getRelativeLocaleUrl('pt-br', 'about'); + --- + + <p>Learn more <a href={aboutURL}>About</a> this site!</p> + ``` + + Enabling i18n routing also provides two new properties for browser language detection: `Astro.preferredLocale` and `Astro.preferredLocaleList`. These combine the browser's `Accept-Langauge` header, and your site's list of supported languages and can be used to automatically respect your visitor's preferred languages. + + Read more about Astro's [experimental i18n routing](https://docs.astro.build/en/guides/internationalization/) in our documentation. + +- [#8951](https://github.com/withastro/astro/pull/8951) [`38e21d127`](https://github.com/withastro/astro/commit/38e21d1275a379744bc402ad28ac35bd629d5ff0) Thanks [@bluwy](https://github.com/bluwy)! - Prefetching is now supported in core + + You can enable prefetching for your site with the `prefetch: true` config. It is enabled by default when using [View Transitions](https://docs.astro.build/en/guides/view-transitions/) and can also be used to configure the `prefetch` behaviour used by View Transitions. + + You can enable prefetching by setting `prefetch:true` in your Astro config: + + ```js + // astro.config.js + import { defineConfig } from 'astro/config'; + + export default defineConfig({ + prefetch: true, + }); + ``` + + This replaces the `@astrojs/prefetch` integration, which is now deprecated and will eventually be removed. + Visit the [Prefetch guide](https://docs.astro.build/en/guides/prefetch/) for more information. + +- [#8903](https://github.com/withastro/astro/pull/8903) [`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d) Thanks [@horo-fox](https://github.com/horo-fox)! - Adds experimental support for multiple shiki themes with the new `markdown.shikiConfig.experimentalThemes` option. + +### Patch Changes + +- [#9016](https://github.com/withastro/astro/pull/9016) [`1ecc9aa32`](https://github.com/withastro/astro/commit/1ecc9aa3240b79a3879b1329aa4f671d80e87649) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Add ability to "Click to go editor" on auditted elements in the dev overlay + +- [#9029](https://github.com/withastro/astro/pull/9029) [`29b83e9e4`](https://github.com/withastro/astro/commit/29b83e9e4b906cc0b5d92fae854fb350fc2be7c8) Thanks [@Princesseuh](https://github.com/Princesseuh)! - Use UInt8Array instead of Buffer for both the input and return values of the `transform()` hook of the Image Service API to ensure compatibility with non-Node runtimes. + + This change is unlikely to affect you, but if you were previously relying on the return value being a Buffer, you may convert an `UInt8Array` to a `Buffer` using `Buffer.from(your_array)`. + +- Updated dependencies [[`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d)]: + - @astrojs/markdown-remark@3.4.0 + ## 3.4.4 ### Patch Changes diff --git a/packages/astro/package.json b/packages/astro/package.json index 2a51200a4..92f55bc0e 100644 --- a/packages/astro/package.json +++ b/packages/astro/package.json @@ -1,6 +1,6 @@ { "name": "astro", - "version": "3.4.4", + "version": "3.5.0", "description": "Astro is a modern site builder with web best practices, performance, and DX front-of-mind.", "type": "module", "author": "withastro", diff --git a/packages/integrations/lit/CHANGELOG.md b/packages/integrations/lit/CHANGELOG.md index 37aa498a0..44880912a 100644 --- a/packages/integrations/lit/CHANGELOG.md +++ b/packages/integrations/lit/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/lit +## 3.0.3 + +### Patch Changes + +- [#9018](https://github.com/withastro/astro/pull/9018) [`23c9a30ad`](https://github.com/withastro/astro/commit/23c9a30ad859398d62a013d639b5b2716b583331) Thanks [@augustjk](https://github.com/augustjk)! - Fix hydration ordering of nested custom elements. Child components will now wait for their parents to hydrate before hydrating themselves. + ## 3.0.2 ### Patch Changes diff --git a/packages/integrations/lit/package.json b/packages/integrations/lit/package.json index a13cee91d..252a412d1 100644 --- a/packages/integrations/lit/package.json +++ b/packages/integrations/lit/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/lit", - "version": "3.0.2", + "version": "3.0.3", "description": "Use Lit components within Astro", "type": "module", "types": "./dist/index.d.ts", diff --git a/packages/integrations/mdx/CHANGELOG.md b/packages/integrations/mdx/CHANGELOG.md index 90070e1b9..fabf754e4 100644 --- a/packages/integrations/mdx/CHANGELOG.md +++ b/packages/integrations/mdx/CHANGELOG.md @@ -1,5 +1,12 @@ # @astrojs/mdx +## 1.1.4 + +### Patch Changes + +- Updated dependencies [[`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d)]: + - @astrojs/markdown-remark@3.4.0 + ## 1.1.3 ### Patch Changes diff --git a/packages/integrations/mdx/package.json b/packages/integrations/mdx/package.json index 4576c7b3d..9ad90c0ad 100644 --- a/packages/integrations/mdx/package.json +++ b/packages/integrations/mdx/package.json @@ -1,7 +1,7 @@ { "name": "@astrojs/mdx", "description": "Add support for MDX pages in your Astro site", - "version": "1.1.3", + "version": "1.1.4", "type": "module", "types": "./dist/index.d.ts", "author": "withastro", diff --git a/packages/markdown/remark/CHANGELOG.md b/packages/markdown/remark/CHANGELOG.md index 6e98ae452..13e67c693 100644 --- a/packages/markdown/remark/CHANGELOG.md +++ b/packages/markdown/remark/CHANGELOG.md @@ -1,5 +1,11 @@ # @astrojs/markdown-remark +## 3.4.0 + +### Minor Changes + +- [#8903](https://github.com/withastro/astro/pull/8903) [`c5010aad3`](https://github.com/withastro/astro/commit/c5010aad3475669648dc939e00f88bbb52489d0d) Thanks [@horo-fox](https://github.com/horo-fox)! - Adds experimental support for multiple shiki themes with the new `markdown.shikiConfig.experimentalThemes` option. + ## 3.3.0 ### Minor Changes diff --git a/packages/markdown/remark/package.json b/packages/markdown/remark/package.json index 131b87371..4f5061e4d 100644 --- a/packages/markdown/remark/package.json +++ b/packages/markdown/remark/package.json @@ -1,6 +1,6 @@ { "name": "@astrojs/markdown-remark", - "version": "3.3.0", + "version": "3.4.0", "type": "module", "author": "withastro", "license": "MIT", |