AstroEco is Releasing…
Display your GitHub releases using astro-loader-github-releases
Patch Changes
-
#16926
1b39ae8Thanks @narendraio! - PreventsApp.match()from throwing on request paths that contain an invalid percent-sequence. -
#16924
2c0bc94Thanks @astrobot-houston! - Fixes an issue where editing a client-side component (e.g. withclient:idle,client:load, etc.) caused an unnecessary full program reload of the backend during development. -
#16958
2c1d50fThanks @fkatsuhiro! - Fixes a bug where static file endpoints usinggetStaticPathswith.htmlin dynamic param values (e.g.{ path: 'file.html' }) would fail with aNoMatchingStaticPathFounderror during build. The.htmlsuffix is no longer incorrectly stripped from endpoint route pathnames. -
#16855
c610cdaThanks @astrobot-houston! - Fixes dynamic routes returning 500 "TypeError: Missing parameter" when using domain-based i18n routing in SSR. -
#16946
606c37bThanks @ematipico! - FixesAstro.routePatternto preserve original casing of dynamic parameter names from filenames. Previously, a file atsrc/pages/blog/[postId].astrowould return/blog/[postid]forAstro.routePatterndue to an internal.toLowerCase()call. It now correctly returns/blog/[postId]. -
#16720
16d49b6Thanks @thomas-callahan-collibra! - Fix an issue where dynamic routes would return the string[object Object]instead of the expected content, in certain runtimes. -
#16703
17390a6Thanks @henrybrewer00-dotcom! - Fixes styles being stripped when the project root is started with a path whose case differs from the actual filesystem case (e.g. runningastro devfromd:\dev\appwhile the folder on disk isD:\dev\app). -
#16855
c610cdaThanks @astrobot-houston! - FixesAstro.currentLocalereturning the default locale instead of the domain's locale on dynamic routes served from a mapped domain.
Patch Changes
-
#16955
9a93d68Thanks @Princesseuh! - Updates Sätteri processor to v0.8.0. See its changelog for details on bugs fixed and features added. -
Updated dependencies [
9a93d68]:- @astrojs/markdown-satteri@0.2.2
Patch Changes
- #16955
9a93d68Thanks @Princesseuh! - Updates Sätteri processor to v0.8.0. See its changelog for details on bugs fixed and features added.
Patch Changes
-
#16922
7dce185Thanks @astrobot-houston! - Fixes prerendered pages returning 404 when usingbuild.format: 'file'orbuild.format: 'preserve'with the Node adapter in standalone mode.Previously, clean URLs like
/aboutwould fail to resolve toabout.htmlon disk, because the static file handler only supported the defaultdirectoryformat (about/index.html). Now the handler correctly resolves clean URLs to.htmlfiles when the build format produces them.
Patch Changes
-
#16693
9e6edc2Thanks @ArmandPhilippot! - Fixes a link in the documentation specifying where to open an issue for the adapter. -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.3
Patch Changes
-
#16900
17a0fbdThanks @ocavue! - Bumpsdevaluedependency to v5.8.1 -
#16016
0d85e1bThanks @felmonon! - Fix a false positive in the dev toolbar accessibility audit for anchors with text inside closed<details>elements. -
#16911
79c6c46Thanks @astrobot-houston! - Fixes a bug whereexperimental.advancedRoutingwithastro/honohandlers threwTypeError: Cannot read properties of undefined (reading 'route')for unmatched routes instead of rendering the custom 404 page. -
#16899
239c469Thanks @matthewp! - Fixes a false "does not call the middleware() handler" warning when usingastro()in a customsrc/app.tsand the first request is a redirect route. -
#16887
493acdbThanks @astrobot-houston! - FixesredirectToDefaultLocalenot working after the Advanced Routing refactoring. -
#16908
ef53ab9Thanks @florian-lefebvre! - Improves optimized fallbacks generation when using the Fonts API by using better metrics for bold variants
Patch Changes
-
#16914
4bdd240Thanks @matthewp! - Fixesastro/fetchandastro/honobeing discovered at runtime during dev instead of pre-bundled -
#16693
9e6edc2Thanks @ArmandPhilippot! - Fixes a link in the documentation specifying where to open an issue for the adapter. -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.3
Patch Changes
-
#3910
dddf405Thanks @andreialba! - Improves Romanian UI translations -
#3924
02f2ce1Thanks @BouRock! - Improves Turkish UI translations -
#3928
11a7ed2Thanks @delucis! - Updates Pagefind to v1.5 and adds support for Pagefind’s newdiacriticSimilarityandmetaWeightsadvanced ranking options -
#3927
e944870Thanks @HiDeoo! - Refactors internal file path handling for Starlight content collections.
Patch Changes
-
#16889
b94bcfdThanks @Princesseuh! - Fixes aplugins is not iterablecrash when using a pre-6.0@astrojs/mdxalongside integrations (e.g. Starlight) that setmarkdown.remarkPlugins,markdown.rehypePlugins, ormarkdown.remarkRehype. -
#16878
b9f6bb9Thanks @fkatsuhiro! - Fixes an issue where on-demand (SSR) dynamic routes would return 404 when a prerendered dynamic route with the same URL pattern was sorted first alphabetically. In production builds with@astrojs/nodeadapter, if[a_prebuild].astro(prerender=true) came before[b_ssr].astroalphabetically, requests to URLs not in the prerendered route's static paths would 404 instead of falling through to the SSR route. The fix adds fallthrough logic so that when a prerendered dynamic route matches but can't serve the request, Astro tries subsequent matching routes.
Patch Changes
- #16883
eeb064cThanks @Princesseuh! - Fixes missing provenance information on the publish
@astrojs/markdown-satteri
0.2.0
Minor Changes
-
#16848
f732f3cThanks @Princesseuh! - Adds@astrojs/markdown-satteri, a Markdown processor based on Sätteri, a fast Markdown pipeline written in Rust.Sätteri is much faster than the default Remark-based processor, and supports a wide range of Markdown features out of the box, without requiring additional plugins. In the future, we plan to make this the default Markdown processor in Astro.
npm install @astrojs/markdown-satteri
// astro.config.mjs import { satteri } from '@astrojs/markdown-satteri'; export default defineConfig({ markdown: { processor: satteri(), }, });
Note that this processor currently does not support Prism syntax highlighting, and require using
syntaxHighlight: 'shiki'or disabling syntax highlighting altogether for now.
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
13.6.0
Minor Changes
-
#16729
01aa164Thanks @matthewp! - Adds@astrojs/cloudflare/fetchand@astrojs/cloudflare/honoexports for composing Cloudflare-specific setup with Astro's advanced routing handlers.@astrojs/cloudflare/fetchFor use with
astro/fetchin a custom fetch handler:import { astro, FetchState } from 'astro/fetch'; import { cf } from '@astrojs/cloudflare/fetch'; export default { async fetch(request: Request, env: Env, ctx: ExecutionContext) { const state = new FetchState(request); const asset = await cf(state, env, ctx); if (asset) return asset; return astro(state); }, };
@astrojs/cloudflare/honoFor use with
astro/honoas Hono middleware:import { Hono } from 'hono'; import { actions, middleware, pages, i18n } from 'astro/hono'; import { cf } from '@astrojs/cloudflare/hono'; const app = new Hono<{ Bindings: Env }>(); app.use(cf()); app.use(actions()); app.use(middleware()); app.use(pages()); app.use(i18n()); export default app;
Both handlers configure SESSION KV bindings, static asset serving via the ASSETS binding,
locals.cfContext, client address,waitUntil, and prerendered error page fetch.
Patch Changes
-
#16868
f9bae95Thanks @helio-cf! - Fixes user options passed tocloudflare({...})(remoteBindings,inspectorPort,persistState,configPath,auxiliaryWorkers) being silently ignored duringastro preview. The adapter now resolves the full@cloudflare/vite-pluginconfig once at integration setup time and reuses that single resolved value across the dev/build plugin, the prerenderer's preview server, and theastro previewentrypoint, so user options can no longer be dropped at one of the call sites. -
#16468
4cff3a1Thanks @matthewp! - Fixes static Cloudflare builds with server islands or image endpoints that failed at preview time due to mismatched output directories. -
Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
- @astrojs/underscore-redirects@1.0.3
0.10.0
Minor Changes
- #16848
f732f3cThanks @Princesseuh! - Addsmarkdown,frontmatter, andshikihelper modules, shared by Astro's content pipeline.
1.0.6
Patch Changes
-
#16848
f732f3cThanks @Princesseuh! - Removes@astrojs/markdown-remarkfrom@astrojs/markdoc's dependencies in favour of Astro's internal markdown utilities now that Astro's Markdown support is processor agnostic. -
Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
7.2.0
Minor Changes
-
#16848
f732f3cThanks @Princesseuh! - Adds a newmarkdown.processorconfiguration option, allowing you to choose an alternative Markdown processor.Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.
The default processor is
unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.// astro.config.mjs import { defineConfig } from 'astro/config'; import { unified } from '@astrojs/markdown-remark'; import remarkToc from 'remark-toc'; export default defineConfig({ markdown: { processor: unified({ remarkPlugins: [remarkToc], }), }, });
In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing
@astrojs/markdown-satteri, importing thesatteri()processor, and adapting your existing configuration:// astro.config.mjs import { defineConfig } from 'astro/config'; import { satteri } from '@astrojs/markdown-satteri'; export default defineConfig({ markdown: { processor: satteri({ features: { directive: true }, }), }, });
This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.
The existing top-level
markdown.remarkPlugins,markdown.rehypePlugins,markdown.remarkRehype,markdown.gfm, andmarkdown.smartypantsoptions still work, but are now deprecated and will be removed in a future major update. The matchingremarkPlugins,rehypePlugins, andremarkRehypeoptions on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them ontounified({...})(or your preferred plugin processor) :// astro.config.mjs import { defineConfig } from 'astro/config'; import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; + import { unified } from '@astrojs/markdown-remark'; export default defineConfig({ markdown: { + processor: unified({ + remarkPlugins: [remarkToc], + rehypePlugins: [rehypeSlug], + remarkRehype: true, + gfm: true, + smartypants: true, + }), - remarkPlugins: [remarkToc], - rehypePlugins: [rehypeSlug], - remarkRehype: true, - gfm: true, - smartypants: true, }, });For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
6.0.0
Major Changes
-
#16848
f732f3cThanks @Princesseuh! - Adds a newmarkdown.processorconfiguration option, allowing you to choose an alternative Markdown processor.Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.
The default processor is
unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.// astro.config.mjs import { defineConfig } from 'astro/config'; import { unified } from '@astrojs/markdown-remark'; import remarkToc from 'remark-toc'; export default defineConfig({ markdown: { processor: unified({ remarkPlugins: [remarkToc], }), }, });
In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing
@astrojs/markdown-satteri, importing thesatteri()processor, and adapting your existing configuration:// astro.config.mjs import { defineConfig } from 'astro/config'; import { satteri } from '@astrojs/markdown-satteri'; export default defineConfig({ markdown: { processor: satteri({ features: { directive: true }, }), }, });
This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.
The existing top-level
markdown.remarkPlugins,markdown.rehypePlugins,markdown.remarkRehype,markdown.gfm, andmarkdown.smartypantsoptions still work, but are now deprecated and will be removed in a future major update. The matchingremarkPlugins,rehypePlugins, andremarkRehypeoptions on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them ontounified({...})(or your preferred plugin processor) :// astro.config.mjs import { defineConfig } from 'astro/config'; import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; + import { unified } from '@astrojs/markdown-remark'; export default defineConfig({ markdown: { + processor: unified({ + remarkPlugins: [remarkToc], + rehypePlugins: [rehypeSlug], + remarkRehype: true, + gfm: true, + smartypants: true, + }), - remarkPlugins: [remarkToc], - rehypePlugins: [rehypeSlug], - remarkRehype: true, - gfm: true, - smartypants: true, }, });For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.
Minor Changes
-
#16848
f732f3cThanks @Princesseuh! - Adds support for using@astrojs/markdown-satterito parse.mdxfiles.// astro.config.mjs import { defineConfig } from 'astro/config'; import mdx from '@astrojs/mdx'; import { satteri } from '@astrojs/markdown-satteri'; export default defineConfig({ markdown: { processor: satteri({ features: { directive: true }, }), }, integrations: [mdx()], });
Note that the
recmaPluginsoption is not supported when using Sätteri as your MDX processor. If you would like to use Sätteri for Markdown files, but still use Unified for MDX, you can pass a different Markdown processor to the MDX integration:// astro.config.mjs import { defineConfig } from 'astro/config'; import mdx from '@astrojs/mdx'; import { satteri } from '@astrojs/markdown-satteri'; import { unified } from '@astrojs/markdown-remark'; import myPlugin from './my-recma-plugin.js'; export default defineConfig({ markdown: { processor: satteri({ features: { directive: true }, }), }, integrations: [ mdx({ recmaPlugins: [myPlugin], processor: unified(), }), ], });
Patch Changes
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
- @astrojs/underscore-redirects@1.0.3
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
Patch Changes
- Updated dependencies [
f732f3c]:- @astrojs/internal-helpers@0.10.0
Minor Changes
-
#16468
4cff3a1Thanks @matthewp! - Adds a newpreserveBuildServerDiradapter featureAdapters can now set
preserveBuildServerDir: truein their adapter features to keep thedist/server/directory structure for static builds, mirroring the existingpreserveBuildClientDiroption. This is useful for adapters that require a consistentdist/client/anddist/server/layout regardless of build output type.setAdapter({ name: 'my-adapter', adapterFeatures: { buildOutput, preserveBuildClientDir: true, preserveBuildServerDir: true, }, });
-
#16848
f732f3cThanks @Princesseuh! - Adds a newmarkdown.processorconfiguration option, allowing you to choose an alternative Markdown processor.Websites with many Markdown/MDX files tend to be slow to build because the unified ecosystem (e.g., remark, rehype) is slow to process. This feature introduces the ability to replace this part of the build pipeline with another processor.
The default processor is
unified(). This means that existing configurations remain unchanged and your remark/rehype plugins continue to work.// astro.config.mjs import { defineConfig } from 'astro/config'; import { unified } from '@astrojs/markdown-remark'; import remarkToc from 'remark-toc'; export default defineConfig({ markdown: { processor: unified({ remarkPlugins: [remarkToc], }), }, });
In addition to this new configuration option, Astro provides a new alternative processor based on Rust: Sätteri. You can choose to use it now by installing
@astrojs/markdown-satteri, importing thesatteri()processor, and adapting your existing configuration:// astro.config.mjs import { defineConfig } from 'astro/config'; import { satteri } from '@astrojs/markdown-satteri'; export default defineConfig({ markdown: { processor: satteri({ features: { directive: true }, }), }, });
This processor does not support the remark and rehype plugins. This means you may need to convert them to MDAST or HAST plugins to retain your current functionality.
The existing top-level
markdown.remarkPlugins,markdown.rehypePlugins,markdown.remarkRehype,markdown.gfm, andmarkdown.smartypantsoptions still work, but are now deprecated and will be removed in a future major update. The matchingremarkPlugins,rehypePlugins, andremarkRehypeoptions on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them ontounified({...})(or your preferred plugin processor) :// astro.config.mjs import { defineConfig } from 'astro/config'; import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; + import { unified } from '@astrojs/markdown-remark'; export default defineConfig({ markdown: { + processor: unified({ + remarkPlugins: [remarkToc], + rehypePlugins: [rehypeSlug], + remarkRehype: true, + gfm: true, + smartypants: true, + }), - remarkPlugins: [remarkToc], - rehypePlugins: [rehypeSlug], - remarkRehype: true, - gfm: true, - smartypants: true, }, });For more information on enabling and using this feature in your project, see our Markdown guide. To give feedback on this new Rust processor, see the Native Markdown / MDX parsing and processing RFC.
Patch Changes
-
#16468
4cff3a1Thanks @matthewp! - Skips the static preview server when an adapter provides its ownpreviewEntrypoint, allowing the adapter to handle both static and dynamic routes -
#16811
e0e26dbThanks @matthewp! - FixesX-Forwarded-HostandX-Forwarded-Protoheaders being ignored when set in a customsrc/app.tsfetch handler before creatingFetchState -
#16468
4cff3a1Thanks @matthewp! - Fixes the static preview server to respectpreserveBuildClientDir, serving files frombuild.clientinstead ofoutDirwhen the adapter requires it -
#16770
1e2aa11Thanks @matthewp! - Fixes a race condition where the Vite dep optimizer could lose React dependencies in dev mode when using Astro Actions -
#16468
4cff3a1Thanks @matthewp! - Exempts internal routes (e.g. server islands) fromgetStaticPaths()validation, fixing server island rendering on static sites -
#16468
4cff3a1Thanks @matthewp! - Fixes preview for static sites that contain non-prerendered routes. Previously, the preview command ignored SSR routes discovered during route scanning and always used the static preview server. -
Updated dependencies [
f732f3c,f732f3c]:- @astrojs/internal-helpers@0.10.0
- @astrojs/markdown-remark@7.2.0
Major Changes
-
Remove the
userCommitmode from build-time and live release loaders because GitHub no longer includes commit summaries in publicPushEventpayloads. Themode: 'repoList'discriminator is also removed because repository-list loading is now the only supported behavior (c0089f2) -
Move live loaders to the
/livesubpath.liveGithubReleasesLoaderis no longer exported from the package root, so import it from the/livesubpath instead: (c0089f2)import { liveGithubReleasesLoader } from "astro-loader-github-releases/live";
This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as
astro:env/server. -
Use Astro's adapter-backed
getSecret()for live loader GitHub tokens instead ofimport.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (c0089f2) -
Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate
entryReturnTypeinference and avoiding Zod 4 internal type leakage in published declarations (c0089f2) -
Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (
c0089f2)- Replace object intersection with
extend()for the extended post schema
- Replace object intersection with
Major Changes
-
Update the default Instagram API version from
v23.0tov25.0(c0089f2) -
Move live loaders to the
/livesubpath.liveInsMediasLoaderis no longer exported from the package root, so import it from the/livesubpath instead: (c0089f2)import { liveInsMediasLoader } from "astro-loader-ins-medias/live";
This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as
astro:env/server. -
Use Astro's adapter-backed
getSecret()for live loader GitHub tokens instead ofimport.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (c0089f2) -
Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (
c0089f2)- Replace
passthrough()usage withcatchall(z.unknown())to keep allowing extra fields without requiring Zod 4-onlyz.looseObject()
- Replace
Patch Changes
- Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate loader-based entry data inference and avoiding Zod 4 internal type leakage in published declarations (
c0089f2)
Patch Changes
-
Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate loader-based entry data inference and avoiding Zod 4 internal type leakage in published declarations (
c0089f2) -
Astro v6.0 upgrades to Zod 4. Based on the Zod 4 changelog and the need to keep compatibility with older Astro versions, update schemas by: (
c0089f2)- Replace
passthrough()usage withcatchall(z.unknown())to keep allowing extra fields without requiring Zod 4-onlyz.looseObject(); - Replace
z.any()label entries withz.unknown()to avoid leakinganyinto inferred entry data; - Replace object intersection with
extend()for the extended post schema; - Intentionally keep deprecated string format methods such as
z.string().url()andz.string().datetime()for compatibility with older Astro/Zod versions.
- Replace
-
Add config-specific loader overloads so
fetchThreadandfetchOnlyAuthorRepliesinfer the matching entry data shape (c0089f2) -
Use the public
@atproto/apiAppBskyFeedDefsexports and type guards instead of internaldist/client/typesimports (c0089f2) -
Relax the thread schema for raw nested replies and optional Bluesky author fields that the API can omit (
c0089f2) -
Cache by the full parsed loader config instead of only
urisso rendering and thread option changes trigger a reload (c0089f2) -
Preserve stack traces in loader error logs so failures remain debuggable (
c0089f2)
Major Changes
-
Move live loaders to the
/livesubpath.liveGithubPrsLoaderis no longer exported from the package root, so import it from the/livesubpath instead: (41b7369)import { liveGithubPrsLoader } from "astro-loader-github-prs/live";
This keeps the package root focused on build-time loaders and prevents build-time users from loading live runtime dependencies such as
astro:env/server -
Use Astro's adapter-backed
getSecret()for live loader GitHub tokens instead ofimport.meta.env, avoiding build-time inlining and allowing runtime-provided secrets to be read per request (41b7369) -
Implement the Astro 6 migration change where schema types are inferred instead of generated, while preserving accurate loader-based entry data inference and avoiding Zod 4 internal type leakage in published declarations (
41b7369)
Patch Changes
- #16496
4d79750Thanks @fkatsuhiro! - Fixed an issue where type errors occurred during testing library type checks because Astro overrides Svelte 5 component types.
Patch Changes
-
#16607
98297afThanks @alexanderflodin! - Fixes incorrectassets.directoryin the generatedwrangler.jsonwhen abasepath is configured -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.3
Patch Changes
- #16837
783c4a6Thanks @jdevalk! - Improves<lastmod>accuracy in the sitemap index. Each<sitemap>entry insitemap-index.xmlis now stamped with the most recentlastmodof the URLs in the child sitemap it points to, instead of repeating a single global date on every entry. When a child sitemap has no per-URLlastmod, the entry falls back to thelastmodoption as before. This gives search engines a per-file freshness signal, so they can tell which child sitemaps actually changed without refetching all of them.
Patch Changes
-
#16830
f2bf3cbThanks @matthewp! - Fixes 404s for dynamically imported JS chunks when using an adapter withassetQueryParams(e.g. Vercel skew protection) -
#16831
ace96baThanks @astrobot-houston! - Fixes a misleadingGetStaticPathsRequirederror when a redirect is configured from a dynamic route to a static (or less-dynamic) destination. For example,'/project/[slug]': '/'previously produced a confusing error pointing atindex.astro. Astro now detects the parameter mismatch at config validation time and throws a clearInvalidRedirectDestinationerror naming the missing parameters. -
#16702
b7d1758Thanks @matthewp! - Fixes scoped styles from.astrocomponents being dropped when rendered inside MDX content (<Content />fromrender(entry)) passed through a named slot using<Fragment slot="X">. The Fragment component now eagerly evaluates its slot contents to ensure propagating components register their styles before head content is flushed. -
#16823
3df6a45Thanks @astrobot-houston! - Fixes missing CSS for conditionally rendered Svelte components in production builds -
#16836
3d7adfaThanks @LongYC! - Document compressHTML: "jsx" config is only available since Astro v6.2.0 -
#16864
334ce13Thanks @cheets! - Fixes a false-positiveInternal Warning: route cache overwrittenlogged on every SSR request for dynamic routes
Patch Changes
-
#16769
428cb1bThanks @astrobot-houston! - Forwards user-providedoptimizeDepssettings (exclude, include, esbuildOptions.loader) to SSR/prerender environments. Previously, top-levelvite.optimizeDepsin the Astro config was silently ignored for server environments because Vite 6 scopes it to client-only and the adapter'sconfigEnvironmenthook did not forward it. This caused packages with non-standard file types (e.g..datafiles) to fail during dev-mode dependency optimization with errors like "No loader is configured for '.data' files". -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.3
Patch Changes
-
#16801
d619277Thanks @ematipico! - Reverts a change to the esbuild dep-scan plugin that causedastro checkandastro buildto fail by making esbuild incorrectly bundlevirtual:modules (e.g. from expressive-code) -
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.3
Patch Changes
- #16719
2b1df12Thanks @alexisintech! - fix MDX syntax highlighting for indented astro codeblocks
Patch Changes
- #16579
49e10e3Thanks @igor-koop! - Fixes an issue where thesmartypantsoption was ignored.
Patch Changes
- Updated dependencies [
d365c97]:- @astrojs/internal-helpers@0.9.1
Patch Changes
- Updated dependencies [
d365c97]:- @astrojs/internal-helpers@0.9.1
Patch Changes
- Updated dependencies [
d365c97]:- @astrojs/internal-helpers@0.9.1
Patch Changes
- Updated dependencies [
9256345]:- @astrojs/markdown-remark@7.1.2
Patch Changes
- Updated dependencies [
d365c97]:- @astrojs/internal-helpers@0.9.1
Patch Changes
-
#3885
010eed1Thanks @ArmandPhilippot! - Fixes the version mentioned in an error message related to autogenerated sidebar groups support. -
#3887
b3c6990Thanks @delucis! - Adds 13 new icons:clock,desktop,mobile-android,window,database,server,code-branch,notes,question,question-circle,analytics,padlock, andsolidjs.
Minor Changes
- #16639
4d72482Thanks @ematipico! - The adapter now depends on Astro 6.3.0.
Patch Changes
- #16627
5778cb7Thanks @Princesseuh! - Fixes unintended dependency on thetypescriptpackage being available to the language server
Patch Changes
- #16260
354e231Thanks @gameroman! - Refactors internal config logic to remove thedlvdependency in favor of native logic
Minor Changes
-
#3618
dcf6d09Thanks @HiDeoo! -⚠️ BREAKING CHANGE: This release changes how autogenerated links work in Starlight’s sidebar configuration.If you have sidebar groups using the
autogeneratekey, you must now wrap that configuration in anitemsarray:{ label: 'My group', - autogenerate: { directory: 'some-dir' }, + items: [{ autogenerate: { directory: 'some-dir' } }], }This change unlocks the possibility to mix autogenerated links and other links in a single group, for example:
{ label: 'Mixed group', items: [ 'example-page', { autogenerate: { directory: 'examples' } }, { label: 'More examples', link: 'https://example.com' }, ], }
This release also updates the shape of autogenerated sidebar entries in route data. Autogenerated links and groups in
Astro.locals.starlightRoute.sidebarnow include anautogenerateobject with the configureddirectoryvalue:{ type: 'link', label: 'Example', href: '/examples/example/', isCurrent: false, autogenerate: { directory: 'examples' } }
-
#3618
dcf6d09Thanks @HiDeoo! -⚠️ BREAKING CHANGE: This release changes the default collapsed state of autogenerated sidebar subgroups.Autogenerated subgroups no longer inherit the
collapsedvalue from their parent group. They are now expanded by default unless explicitly configured withautogenerate.collapsed.If your sidebar configuration relies on a collapsed parent group to also collapse its autogenerated subgroups, update your configuration to set
autogenerate.collapsedtotrue:{ label: 'Reference', collapsed: true, items: [ - { autogenerate: { directory: 'reference' } }, + { autogenerate: { directory: 'reference', collapsed: true } }, ], } -
#3845
4d755f5Thanks @delucis! - Adds a<link rel="alternate" hreflang="x-default" href="...">tag pointing to the default locale in multilingual sites. Thex-defaultalternate is used as a signal of which language to fall back to if no other is available. Learn more in Google’s SEO localization docs. -
#3862
ec70630Thanks @itrew! - Makes spacing of items in nested lists more consistent -
#3872
417a66cThanks @tats-u! - Enables the CSS propertytext-autospacein Chinese and Japanese documents.If you would prefer to disable autospacing in Chinese and Japanese pages, you can add the following custom CSS to your site:
[lang]:where(:lang(zh, ja)) { text-autospace: initial; }
-
#3797
9764ebdThanks @delucis! - Avoids the risk of layout shift when users expand and collapse sidebar groupsThis release can introduce additional padding to the site sidebar on certain devices to reserve space for scrollbars. You may wish to inspect your site sidebar visually when upgrading.
If you would prefer to keep the previous styling, you can add the following custom CSS to your site:
.sidebar-pane { scrollbar-gutter: auto; }
-
#3858
6672c35Thanks @delucis! - Updatesi18next, used for Starlight’s localization APIs, from v23 to v26There should not be any user-facing changes from this update
Last fetched: | Scheduled refresh: Every Saturday
See Customizing GitHub Activity Pages to configure your own
Inspired by releases.antfu.me