Skip to content

[ci] release#16870

Merged
ematipico merged 1 commit into
mainfrom
changeset-release/main
May 28, 2026
Merged

[ci] release#16870
ematipico merged 1 commit into
mainfrom
changeset-release/main

Conversation

@astrobot-houston
Copy link
Copy Markdown
Contributor

@astrobot-houston astrobot-houston commented May 26, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@astrojs/mdx@6.0.0

Major Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration 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 the satteri() 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, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (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 f732f3c Thanks @Princesseuh! - Adds support for using @astrojs/markdown-satteri to parse .mdx files.

    // 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 recmaPlugins option 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

  • Updated dependencies [f732f3c, f732f3c, f732f3c]:
    • @astrojs/internal-helpers@0.10.0
    • @astrojs/markdown-remark@7.2.0
    • @astrojs/markdown-satteri@0.2.0

astro@6.4.0

Minor Changes

  • #16468 4cff3a1 Thanks @matthewp! - Adds a new preserveBuildServerDir adapter feature

    Adapters can now set preserveBuildServerDir: true in their adapter features to keep the dist/server/ directory structure for static builds, mirroring the existing preserveBuildClientDir option. This is useful for adapters that require a consistent dist/client/ and dist/server/ layout regardless of build output type.

    setAdapter({
      name: 'my-adapter',
      adapterFeatures: {
        buildOutput,
        preserveBuildClientDir: true,
        preserveBuildServerDir: true,
      },
    });
  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration 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 the satteri() 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, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (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 4cff3a1 Thanks @matthewp! - Skips the static preview server when an adapter provides its own previewEntrypoint, allowing the adapter to handle both static and dynamic routes

  • #16811 e0e26db Thanks @matthewp! - Fixes X-Forwarded-Host and X-Forwarded-Proto headers being ignored when set in a custom src/app.ts fetch handler before creating FetchState

  • #16468 4cff3a1 Thanks @matthewp! - Fixes the static preview server to respect preserveBuildClientDir, serving files from build.client instead of outDir when the adapter requires it

  • #16770 1e2aa11 Thanks @matthewp! - Fixes a race condition where the Vite dep optimizer could lose React dependencies in dev mode when using Astro Actions

  • #16468 4cff3a1 Thanks @matthewp! - Exempts internal routes (e.g. server islands) from getStaticPaths() validation, fixing server island rendering on static sites

  • #16468 4cff3a1 Thanks @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

@astrojs/cloudflare@13.6.0

Minor Changes

  • #16729 01aa164 Thanks @matthewp! - Adds @astrojs/cloudflare/fetch and @astrojs/cloudflare/hono exports for composing Cloudflare-specific setup with Astro's advanced routing handlers.

    @astrojs/cloudflare/fetch

    For use with astro/fetch in 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/hono

    For use with astro/hono as 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 f9bae95 Thanks @helio-cf! - Fixes user options passed to cloudflare({...}) (remoteBindings, inspectorPort, persistState, configPath, auxiliaryWorkers) being silently ignored during astro preview. The adapter now resolves the full @cloudflare/vite-plugin config once at integration setup time and reuses that single resolved value across the dev/build plugin, the prerenderer's preview server, and the astro preview entrypoint, so user options can no longer be dropped at one of the call sites.

  • #16468 4cff3a1 Thanks @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

@astrojs/internal-helpers@0.10.0

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds markdown, frontmatter, and shiki helper modules, shared by Astro's content pipeline.

@astrojs/markdown-remark@7.2.0

Minor Changes

  • #16848 f732f3c Thanks @Princesseuh! - Adds a new markdown.processor configuration 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 the satteri() 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, and markdown.smartypants options still work, but are now deprecated and will be removed in a future major update. The matching remarkPlugins, rehypePlugins, and remarkRehype options on the MDX integration are also deprecated for the same reason. To anticipate their removal, move them onto unified({...}) (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

@astrojs/markdown-satteri@0.2.0

Minor Changes

  • #16848 f732f3c Thanks @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

@astrojs/markdoc@1.0.6

Patch Changes

  • #16848 f732f3c Thanks @Princesseuh! - Removes @astrojs/markdown-remark from @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

@astrojs/netlify@7.0.11

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0
    • @astrojs/underscore-redirects@1.0.3

@astrojs/node@10.1.2

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0

@astrojs/preact@5.1.4

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0

@astrojs/react@5.0.6

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0

@astrojs/vercel@10.0.8

Patch Changes

  • Updated dependencies [f732f3c]:
    • @astrojs/internal-helpers@0.10.0

@github-actions github-actions Bot force-pushed the changeset-release/main branch from b0e85a8 to 4e9df5e Compare May 26, 2026 17:35
@github-actions github-actions Bot added pkg: example Related to an example package (scope) pkg: astro Related to the core `astro` package (scope) labels May 26, 2026
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 4e9df5e to dd552f2 Compare May 26, 2026 17:38
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 26, 2026

Merging this PR will not alter performance

✅ 18 untouched benchmarks


Comparing changeset-release/main (b0e85a8) with main (b27d967)

Open in CodSpeed

@github-actions github-actions Bot force-pushed the changeset-release/main branch 8 times, most recently from 591a3dc to 578ebb8 Compare May 27, 2026 16:35
@github-actions github-actions Bot force-pushed the changeset-release/main branch from 578ebb8 to a39279c Compare May 27, 2026 16:36
@ematipico ematipico merged commit c7157e6 into main May 28, 2026
@ematipico ematipico deleted the changeset-release/main branch May 28, 2026 09:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: astro Related to the core `astro` package (scope) pkg: example Related to an example package (scope)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants