The web framework for content-driven websites. ⭐️ Star to support our work!
OTHER License
Published by astrobot-houston 9 months ago
#9818 d688954c5adba75b0d676694fbf5fb0da1c0af13
Thanks @Princesseuh! - Improves the wording of a few confusing error messages
#9680 5d7db1dbb0ff06db98e08b0ca241ff09d0b8b44d
Thanks @loucyx! - Fixes types generation from Content Collections config file
#9822 bd880e8437ea2df16f322f604865c1148a9fd4cf
Thanks @liruifengv! - Applies the correct escaping to identifiers used with transition:name
.
#9830 f3d22136e53fd902310024519fc4de83f0a58039
Thanks @lilnasy! - Fixes an issue where 404 responses from endpoints were replaced with contents of 404.astro in dev mode.
#9816 2a44c8f93201958fba2d1e83046eabcaef186b7c
Thanks @Princesseuh! - Adds telemetry for when apps are toggled in the dev toolbar. This data is completely anonymous and only the names of built-in apps are shared with us. This data will help us monitor how much the dev toolbar is used and which apps are used more. For more information on how Astro collects telemetry, visit the following page: https://astro.build/telemetry/
#9807 b3f313138bb314e2b416c29cda507383c2a9f816
Thanks @bluwy! - Fixes environment variables replacement for export const prerender
#9790 267c5aa2c7706f0ea3447f20a09d85aa560866ad
Thanks @lilnasy! - Refactors internals of the astro:i18n
module to be more maintainable.
#9776 dc75180aa698b298264362bab7f00391af427798
Thanks @lilnasy! - Simplifies internals that handle middleware.
Published by astrobot-houston 9 months ago
3435b7f1e1ca38fdee8f3b89e2d2667f125d01b5
Thanks @lilnasy! - Fixes an issue where the serverless function ignored cookies added using Astro.cookies.Published by astrobot-houston 9 months ago
a12196d6b59e39f5d405734ecdbf6f6b42b39a93
Thanks @msxdan! - Add trailingSlash support to NodeJS adapterPublished by astrobot-houston 9 months ago
#9751 1153331cbbaa66a88645d15c6e949432210d4acc
Thanks @florian-lefebvre! - Allows extending Alpine using the new entrypoint
configuration
You can extend Alpine by setting the entrypoint
option to a root-relative import specifier (for example, entrypoint: "/src/entrypoint"
).
The default export of this file should be a function that accepts an Alpine instance prior to starting, allowing the use of custom directives, plugins and other customizations for advanced use cases.
// astro.config.mjs
import { defineConfig } from 'astro/config';
import alpine from '@astrojs/alpinejs';
export default defineConfig({
// ...
integrations: [alpine({ entrypoint: '/src/entrypoint' })],
});
// src/entrypoint.ts
import type { Alpine } from 'alpinejs'
export default (Alpine: Alpine) => {
Alpine.directive('foo', el => {
el.textContent = 'bar';
})
}
Published by astrobot-houston 9 months ago
fecba30a1abb7ca65dfb8f506dde77117fa447d1
Thanks @florian-lefebvre! - Fixes @astrojs/check
and typescript
addition to package.json
dependencies when the user has decided not to auto-install dependenciesPublished by astrobot-houston 9 months ago
457e8b6422704ba23347c766a8bb9c101c2aba0b
Thanks @wkillerud! - Restores rssSchema
to a zod objectPublished by astrobot-houston 9 months ago
#9792 e22cb8b10c0ca9f6d88cab53cd2713f57875ab4b
Thanks @tugrulates! - Accept aria role switch
on toolbar audit.
#9606 e6945bcf23b6ad29388bbadaf5bb3cc31dd4a114
Thanks @eryue0220! - Fixes escaping behavior for .html
files and components
#9786 5b29550996a7f5459a0d611feea6e51d44e1d8ed
Thanks @Fryuni! - Fixes a regression in routing priority for index pages in rest parameter folders and dynamic sibling trees.
Considering the following tree:
src/pages/
├── index.astro
├── static.astro
├── [dynamic_file].astro
├── [...rest_file].astro
├── blog/
│ └── index.astro
├── [dynamic_folder]/
│ ├── index.astro
│ ├── static.astro
│ └── [...rest].astro
└── [...rest_folder]/
├── index.astro
└── static.astro
The routes are sorted in this order:
/src/pages/index.astro
/src/pages/blog/index.astro
/src/pages/static.astro
/src/pages/[dynamic_folder]/index.astro
/src/pages/[dynamic_file].astro
/src/pages/[dynamic_folder]/static.astro
/src/pages/[dynamic_folder]/[...rest].astro
/src/pages/[...rest_folder]/static.astro
/src/pages/[...rest_folder]/index.astro
/src/pages/[...rest_file]/index.astro
This allows for index files to be used as overrides to rest parameter routes on SSR when the rest parameter matching undefined
is not desired.
#9775 075706f26d2e11e66ef8b52288d07e3c0fa97eb1
Thanks @lilnasy! - Simplifies internals that handle endpoints.
#9773 9aa7a5368c502ae488d3a173e732d81f3d000e98
Thanks @LunaticMuch! - Raises the required vite version to address a vulnerability in vite.server.fs.deny
that affected the dev mode.
#9781 ccc05d54014e24c492ca5fddd4862f318aac8172
Thanks @stevenbenner! - Fix build failure when image file name includes special characters
Published by astrobot-houston 9 months ago
df37366556d46f7abdf82b09e33b08bd94e631b3
Thanks @OliverSpeir! - Allows remark plugins to pass options specifying how images in .mdx files will be optimizedPublished by astrobot-houston 9 months ago
eed0e8757c35dde549707e71c45862438a043fb0
Thanks @Princesseuh! - Fix apps being able to crash the dev toolbar in certain casesPublished by astrobot-houston 9 months ago
05adaaa2d217a3ecb34244d9b40603f35cef4a37
Thanks @lilnasy! - Fixes an issue where edge middleware did not work.Published by astrobot-houston 9 months ago
#9712 ea6cbd06a2580527786707ec735079ff9abd0ec0
Thanks @bluwy! - Improves HMR behavior for style-only changes in .astro
files
#9739 3ecb3ef64326a8f77aa170df1e3c89cb5c12cc93
Thanks @ematipico! - Makes i18n redirects take the build.format
configuration into account
#9762 1fba85681e86aa83d24336d4209cafbc76b37607
Thanks @ematipico! - Adds popovertarget" to the attribute that can be passed to the
button` element
#9605 8ce40a417c854d9e6a4fa7d5a85d50a6436b4a3c
Thanks @MoustaphaDev! - Adds support for dynamic slot names
#9381 9e01f9cc1efcfb938355829676d51b24818ab2bb
Thanks @martrapp! - Improves the CLI output of astro preferences list
to include additional relevant information
#9741 73d74402007896204ee965f6553dc83b3dec8d2f
Thanks @taktran! - Fixes an issue where dot files were not copied over from the public folder to the output folder, when build command was run in a folder other than the root of the project.
#9730 8d2e5db096f1e7b098511b4fe9357434a6ff0703
Thanks @Blede2000! - Allow i18n routing utilities like getRelativeLocaleUrl to also get the default local path when redirectToDefaultLocale is false
Updated dependencies [53c69dcc82cdf4000aff13a6c11fffe19096cf45
, 2f81cffa9da9db0e2802d303f94feaee8d2f54ec
, a505190933365268d48139a5f197a3cfb5570870
]:
Published by astrobot-houston 9 months ago
a505190933365268d48139a5f197a3cfb5570870
Thanks @bluwy! - Fixes usage in browser environments by using subpath imports#9736 53c69dcc82cdf4000aff13a6c11fffe19096cf45
Thanks @bluwy! - Initializes internal cwdUrlStr
variable lazily for performance, and workaround Rollup side-effect detection bug when building for non-Node runtimes
#9723 2f81cffa9da9db0e2802d303f94feaee8d2f54ec
Thanks @blackmann! - Fixes a case where transformers wouldn't work on the class
property
Published by astrobot-houston 9 months ago
7356336d18c916804001bdf64bff5445d82baceb
Thanks @florian-lefebvre! - Fixes rssSchema
definition to allow calling standard zod object methods (like extend
)Published by astrobot-houston 9 months ago
53c69dcc82cdf4000aff13a6c11fffe19096cf45
, 2f81cffa9da9db0e2802d303f94feaee8d2f54ec
, a505190933365268d48139a5f197a3cfb5570870
]:
Published by astrobot-houston 9 months ago
a4b696def3a7eb18c1ae48b10fd3758a1874b6fe
Thanks @Fryuni! - Fixes a regression in routing priority between index.astro
and dynamic routes with rest parametersPublished by astrobot-houston 9 months ago
d6edc7540864cf5d294d7b881eb886a3804f6d05
Thanks @ematipico! - Breaking: Minimum required Astro version is now 4.2.0.Published by astrobot-houston 9 months ago
#9566 165cfc154be477337037185c32b308616d1ed6fa
Thanks @OliverSpeir! - Allows remark plugins to pass options specifying how images in .md
files will be optimized
#9643 e9a72d9a91a3741566866bcaab11172cb0dc7d31
Thanks @blackmann! - Adds a new markdown.shikiConfig.transformers
config option. You can use this option to transform the Shikiji hast (AST format of the generated HTML) to customize the final HTML. Also updates Shikiji to the latest stable version.
See Shikiji's documentation for more details about creating your own custom transformers, and a list of common transformers you can add directly to your project.
Published by astrobot-houston 9 months ago
#9661 d6edc7540864cf5d294d7b881eb886a3804f6d05
Thanks @ematipico! - If host is unset in standalone mode, the server host will now fallback to localhost
instead of 127.0.0.1
. When localhost
is used, the operating system can decide to use either ::1
(ipv6) or 127.0.0.1
(ipv4) itself. This aligns with how the Astro dev and preview server works by default.
If you relied on 127.0.0.1
(ipv4) before, you can set the HOST
environment variable to 127.0.0.1
to explicitly use ipv4. For example, HOST=127.0.0.1 node ./dist/server/entry.mjs
.
#9661 d6edc7540864cf5d294d7b881eb886a3804f6d05
Thanks @ematipico! - Breaking: Minimum required Astro version is now 4.2.0.
Reorganizes internals to be more maintainable.
d6edc7540864cf5d294d7b881eb886a3804f6d05
Thanks @ematipico! - Fixes an issue where the preview server appeared to be ready to serve requests before binding to a port.Published by astrobot-houston 9 months ago
b325fada567892b63ecae87c1ff845c8514457ba
Thanks @andremralves! - Fixes generated URLs when using a base
with a SSR adapterPublished by astrobot-houston 9 months ago
#9566 165cfc154be477337037185c32b308616d1ed6fa
Thanks @OliverSpeir! - Allows remark plugins to pass options specifying how images in .md
files will be optimized
#9661 d6edc7540864cf5d294d7b881eb886a3804f6d05
Thanks @ematipico! - Adds new helper functions for adapter developers.
Astro.clientAddress
can now be passed directly to the app.render()
method.const response = await app.render(request, { clientAddress: '012.123.23.3' });
Request
and Response
objects are now provided as static methods on the NodeApp
class.http.createServer((nodeReq, nodeRes) => {
const request: Request = NodeApp.createRequest(nodeReq);
const response = await app.render(request);
await NodeApp.writeResponse(response, nodeRes);
});
Astro.cookies.set()
can now be automatically added to the Response
object by passing the addCookieHeader
option to app.render()
.-const response = await app.render(request)
-const setCookieHeaders: Array<string> = Array.from(app.setCookieHeaders(webResponse));
-if (setCookieHeaders.length) {
- for (const setCookieHeader of setCookieHeaders) {
- headers.append('set-cookie', setCookieHeader);
- }
-}
+const response = await app.render(request, { addCookieHeader: true })
#9638 f1a61268061b8834f39a9b38bca043ae41caed04
Thanks @ematipico! - Adds a new i18n.routing
config option redirectToDefaultLocale
to disable automatic redirects of the root URL (/
) to the default locale when prefixDefaultLocale: true
is set.
In projects where every route, including the default locale, is prefixed with /[locale]/
path, this property allows you to control whether or not src/pages/index.astro
should automatically redirect your site visitors from /
to /[defaultLocale]
.
You can now opt out of this automatic redirection by setting redirectToDefaultLocale: false
:
// astro.config.mjs
export default defineConfig({
i18n: {
defaultLocale: 'en',
locales: ['en', 'fr'],
routing: {
prefixDefaultLocale: true,
redirectToDefaultLocale: false,
},
},
});
#9671 8521ff77fbf7e867701cc30d18253856914dbd1b
Thanks @bholmesdev! - Removes the requirement for non-content files and assets inside content collections to be prefixed with an underscore. For files with extensions like .astro
or .css
, you can now remove underscores without seeing a warning in the terminal.
src/content/blog/
post.mdx
- _styles.css
- _Component.astro
+ styles.css
+ Component.astro
Continue to use underscores in your content collections to exclude individual content files, such as drafts, from the build output.
#9567 3a4d5ec8001ebf95c917fdc0d186d29650533d93
Thanks @OliverSpeir! - Improves the a11y-missing-content rule and error message for audit feature of dev-overlay. This also fixes an error where this check was falsely reporting accessibility errors.
#9643 e9a72d9a91a3741566866bcaab11172cb0dc7d31
Thanks @blackmann! - Adds a new markdown.shikiConfig.transformers
config option. You can use this option to transform the Shikiji hast (AST format of the generated HTML) to customize the final HTML. Also updates Shikiji to the latest stable version.
See Shikiji's documentation for more details about creating your own custom transformers, and a list of common transformers you can add directly to your project.
#9644 a5f1682347e602330246129d4666a9227374c832
Thanks @rossrobino! - Adds an experimental flag clientPrerender
to prerender your prefetched pages on the client with the Speculation Rules API.
// astro.config.mjs
{
prefetch: {
prefetchAll: true,
defaultStrategy: 'viewport',
},
experimental: {
clientPrerender: true,
},
}
Enabling this feature overrides the default prefetch
behavior globally to prerender links on the client according to your prefetch
configuration. Instead of appending a <link>
tag to the head of the document or fetching the page with JavaScript, a <script>
tag will be appended with the corresponding speculation rules.
Client side prerendering requires browser support. If the Speculation Rules API is not supported, prefetch
will fallback to the supported strategy.
See the Prefetch Guide for more prefetch
options and usage.
#9439 fd17f4a40b83d14350dce691aeb79d87e8fcaf40
Thanks @Fryuni! - Adds an experimental flag globalRoutePriority
to prioritize redirects and injected routes equally alongside file-based project routes, following the same route priority order rules for all routes.
// astro.config.mjs
export default defineConfig({
experimental: {
globalRoutePriority: true,
},
});
Enabling this feature ensures that all routes in your project follow the same, predictable route priority order rules. In particular, this avoids an issue where redirects or injected routes (e.g. from an integration) would always take precedence over local route definitions, making it impossible to override some routes locally.
The following table shows which route builds certain page URLs when file-based routes, injected routes, and redirects are combined as shown below:
/blog/post/[pid]
/[page]
/blog/[...slug]
/blog/tags/[tag]
-> /[tag]
/posts
-> /blog
URLs are handled by the following routes:
Page | Current Behavior | Global Routing Priority Behavior |
---|---|---|
/blog/tags/astro |
Injected route /blog/[...slug]
|
Redirect to /tags/[tag]
|
/blog/post/0 |
Injected route /blog/[...slug]
|
File-based route /blog/post/[pid]
|
/posts |
File-based route /[page]
|
Redirect to /blog
|
In the event of route collisions, where two routes of equal route priority attempt to build the same URL, Astro will log a warning identifying the conflicting routes.
#9719 7e1db8b4ce2da9e044ea0393e533c6db2561ac90
Thanks @bluwy! - Refactors Vite config to avoid Vite 5.1 warnings
#9439 fd17f4a40b83d14350dce691aeb79d87e8fcaf40
Thanks @Fryuni! - Updates Astro's routing priority rules to prioritize the most specifically-defined routes.
Now, routes with more defined path segments will take precedence over less specific routes.
For example, /blog/posts/[pid].astro
(3 path segments) takes precedence over /blog/[...slug].astro
(2 path segments). This means that:
/pages/blog/posts/[id].astro
will build routes of the form /blog/posts/1
and /blog/posts/a
/pages/blog/[...slug].astro
will build routes of a variety of forms, including blog/1
and /blog/posts/1/a
, but will not build either of the previous routes.For a complete list of Astro's routing priority rules, please see the routing guide. This should not be a breaking change, but you may wish to inspect your built routes to ensure that your project is unaffected.
#9706 1539e04a8e5865027b3a8718c6f142885e7c8d88
Thanks @bluwy! - Simplifies HMR handling, improves circular dependency invalidation, and fixes Astro styles invalidation
Updated dependencies [165cfc154be477337037185c32b308616d1ed6fa
, e9a72d9a91a3741566866bcaab11172cb0dc7d31
]: