withastro/astro
 Watch   
 Star   
 Fork   
15 hours ago
astro

astro@5.16.9

Patch Changes

  • #15174 37ab65a Thanks @florian-lefebvre! - Adds Google Icons to built-in font providers

    To start using it, access it on fontProviders:

    import { defineConfig, fontProviders } from 'astro/config';
    
    export default defineConfig({
      experimental: {
        fonts: [
          {
            name: 'Material Symbols Outlined',
            provider: fontProviders.googleicons(),
            cssVariable: '--font-material',
          },
        ],
      },
    });
  • #15150 a77c4f4 Thanks @matthewp! - Fixes hydration for framework components inside MDX when using Astro.slots.render()

    Previously, when multiple framework components with client:* directives were passed as named slots to an Astro component in MDX, only the first slot would hydrate correctly. Subsequent slots would render their HTML but fail to include the necessary hydration scripts.

  • #15130 9b726c4 Thanks @florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Changes how font providers are implemented with updates to the FontProvider type

    This is an implementation detail that changes how font providers are created. This process allows Astro to take more control rather than relying directly on unifont types. All of Astro's built-in font providers have been updated to reflect this new type, and can be configured as before. However, using third-party unifont providers that rely on unifont types will require an update to your project code.

    Previously, an Astro FontProvider was made of a config and a runtime part. It relied directly on unifont types, which allowed a simple configuration for third-party unifont providers, but also coupled Astro's implementation to unifont, which was limiting.

    Astro's font provider implementation is now only made of a config part with dedicated hooks. This allows for the separation of config and runtime, but requires you to create a font provider object in order to use custom font providers (e.g. third-party unifont providers, or private font registeries).

    What should I do?

    If you were using a 3rd-party unifont font provider, you will now need to write an Astro FontProvider using it under the hood. For example:

    // astro.config.ts
    import { defineConfig } from "astro/config";
    import { acmeProvider, type AcmeOptions } from '@acme/unifont-provider'
    +import type { FontProvider } from "astro";
    +import type { InitializedProvider } from 'unifont';
    
    +function acme(config?: AcmeOptions): FontProvider {
    +	const provider = acmeProvider(config);
    +	let initializedProvider: InitializedProvider | undefined;
    +	return {
    +		name: provider._name,
    +		config,
    +		async init(context) {
    +			initializedProvider = await provider(context);
    +		},
    +		async resolveFont({ familyName, ...rest }) {
    +			return await initializedProvider?.resolveFont(familyName, rest);
    +		},
    +		async listFonts() {
    +			return await initializedProvider?.listFonts?.();
    +		},
    +	};
    +}
    
    export default defineConfig({
        experimental: {
            fonts: [{
    -            provider: acmeProvider({ /* ... */ }),
    +            provider: acme({ /* ... */ }),
                name: "Material Symbols Outlined",
                cssVariable: "--font-material"
            }]
        }
    });
  • #15147 9cd5b87 Thanks @matthewp! - Fixes scripts in components not rendering when a sibling <Fragment slot="..."> exists but is unused

3 days ago
astro

astro-vscode@2.16.8

Patch Changes

3 days ago
astro

astro@5.16.8

Patch Changes

  • #15124 81db3c0 Thanks @leonace924! - Fixes an issue where requests with query parameters to the base path would return a 404 if trailingSlash was not 'ignore' in development

  • #15152 39ee41f Thanks @rururux! - Fixes a case where context.cookies.set() would be overriden when setting cookies via response headers in development

  • #15140 6f6f8f8 Thanks @cameronraysmith! - Fixes esbuild warning due to dead code in assets virtual module

  • #15127 2cff904 Thanks @Princesseuh! - Updates "Unsupported page types found" error to only appear in more realistic cases

  • #15149 34f84c2 Thanks @rahuld109! - Skips "Use the Image component" audit warning for images inside framework components (React, Vue, Svelte, etc.)

3 days ago
astro

astro-vscode@2.16.7

Patch Changes

5 days ago
astro

@astrojs/svelte@7.2.5

Patch Changes

5 days ago
astro

@astrojs/vercel@9.0.3

Patch Changes

5 days ago
astro

@astrojs/sitemap@3.6.1

Patch Changes

5 days ago
astro

astro@5.16.7

Patch Changes

  • #15122 b137946 Thanks @florian-lefebvre! - Improves JSDoc annotations for AstroGlobal, AstroSharedContext and APIContext types

  • #15123 3f58fa2 Thanks @43081j! - Improves rendering performance by grouping render chunks when emitting from async iterables to avoid encoding costs

  • #14954 7bec4bd Thanks @volpeon! - Fixes remote images Etag header handling by disabling internal cache

  • #15052 b2bcd5a Thanks @Princesseuh! - Fixes images not working in development when using setups with port forwarding

  • #15028 87b19b8 Thanks @Princesseuh! - Fixes certain aliases not working when using images in JSON files with the content layer

  • #15118 cfa382b Thanks @florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Removes the defineAstroFontProvider() type helper.

    If you are building a custom font provider, remove any occurrence of defineAstroFontProvider() and use the FontProvider type instead:

    -import { defineAstroFontProvider } from 'astro/config';
    
    -export function myProvider() {
    -    return defineAstroFontProvider({
    -        entrypoint: new URL('./implementation.js', import.meta.url)
    -    });
    -};
    
    +import type { FontProvider } from 'astro';
    
    +export function myProvider(): FontProvider {
    +    return {
    +        entrypoint: new URL('./implementation.js', import.meta.url)
    +    },
    +}
  • #15055 4e28db8 Thanks @delucis! - Reduces Astro’s install size by around 8 MB

  • #15088 a19140f Thanks @martrapp! - Enables the ClientRouter to preserve the original hash part of the target URL during server side redirects.

  • #15117 b1e8e32 Thanks @florian-lefebvre! - BREAKING CHANGE to the experimental Fonts API only

    Changes the font format downloaded by default when using the experimental Fonts API. Additionally, adds a new formats configuration option to specify which font formats to download.

    Previously, Astro was opinionated about which font sources would be kept for usage, mainly keeping woff2 and woff files.

    You can now specify what font formats should be downloaded (if available). Only woff2 files are downloaded by default.

    What should I do?

    If you were previously relying on Astro downloading the woff format, you will now need to specify this explicitly with the new formats configuration option. Additionally, you may also specify any additional file formats to download if available:

    // astro.config.mjs
    import { defineConfig, fontProviders } from 'astro/config'
    
    export default defineConfig({
        experimental: {
            fonts: [{
                name: 'Roboto',
                cssVariable: '--font-roboto',
                provider: fontProviders.google(),
    +            formats: ['woff2', 'woff', 'otf']
            }]
        }
    })
  • #15034 8115752 Thanks @florian-lefebvre! - Fixes a vite warning log during builds when using npm

5 days ago
astro

@astrojs/vue@5.1.4

Patch Changes

5 days ago
astro

astro-vscode@2.16.6

Patch Changes

  • #15083 241bb31 Thanks @fkatsuhiro! - Fix "Find All References" and other TypeScript features by ensuring the plugin bundle is correctly included

  • #15109 e062101 Thanks @Princesseuh! - Fixes syntax highlighting sometimes not working when the frontmatter or script tags ended with certain TypeScript constructs