¡Astro 4.3 ya está disponible! Este lanzamiento incluye una nueva característica experimental de i18n para probar, y mejoras para trabajar con la salida de tu compilación, tipos de props de componentes, imágenes en Markdown, y más.
Los aspectos destacados incluyen:
- Experimental: Añadido soporte de dominios para i18n
- Más control sobre la salida de tus archivos HTML
- Añadida utilidad de tipo
ComponentProps - Mejor soporte para imágenes relativas en Markdown
Cómo actualizar
Para aprovechar las últimas características, asegúrate de estar ejecutando la última versión de Astro. Puedes actualizar a Astro 4.3 ejecutando el comando @astrojs/upgrade:
npx @astrojs/upgradeo ejecutando el comando de actualización para tu gestor de paquetes:
npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestExperimental: Añadido soporte de dominios para i18n
Astro 4.3 añade una configuración i18n experimental de domains. Esto te permite especificar diferentes dominios o subdominios para diferentes locales soportados.
Por ejemplo, ahora podrías usar example.com para tu sitio en inglés, fr.example.com para tu sitio en francés, y example.es para tu sitio en español.
Habilita el flag experimental i18nDomains y mapea cualquiera o todos tus locales a dominios usando i18n.domains en tu archivo astro.config.mjs:
import {defineConfig} from "astro/config"
export default defineConfig({ site: "https://example.com", output: "server", // required, with no prerendered pages adapter: node({ mode: 'standalone', }), i18n: { defaultLocaLe: 'en', locales: ['en', 'es', 'pt_BR', 'pt', 'fr'], domains: { fr: "https://fr.example.com", es: "https://example.es" }, routing: { prefixDefaultLocale: true, } }, experimental: { i18nDomains: true },})Ten en cuenta que esta característica requiere un sitio completamente renderizado en el servidor sin páginas prerenderizadas. Actualmente, los adaptadores @astrojs/node y @astrojs/vercel son soportados, ¡con más compatibilidad de adaptadores por venir!
Consulta más en nuestra documentación de internacionalización para más detalles y limitaciones sobre esta característica experimental de enrutado.
Más control sobre la salida de tus archivos HTML
Este lanzamiento añade una nueva opción build.format llamada preserve para darte más control sobre los archivos HTML resultantes en tu compilación de producción.
Las opciones de configuración actuales (file y directory) compilan todas tus páginas HTML como archivos que coinciden con el nombre de la ruta (ej. /about.html) o compilan todos tus archivos como index.html dentro de una estructura de directorios anidada (ej. /about/index.html), respectivamente. No es posible crear páginas index individuales (ej. /about/index.html) cuando se usa la opción de configuración file.
En lugar de introducir un cambio disruptivo en file, añadimos el nuevo formato preserve que preservará cómo está estructurado el filesystem y se asegurará de que se refleje en producción:
about.astrobecomesabout.htmlabout/index.astrobecomesabout/index.html
¡Lo que ves es lo que obtienes! Esta característica desbloquea mejor compatibilidad con ciertos servidores web que tienen requisitos estrictos sobre cómo se estructuran los archivos.
Consulta la referencia de opciones de configuración de build.format para más detalles.
Añadida utilidad de tipo ComponentProps
Astro ahora incluye una nueva exportación de tipo ComponentProps desde astro/types para obtener el tipo de props de un componente de Astro. Esto es similar a React.ComponentProps o ComponentProps de Svelte.
Esta exportación de tipo te permite referenciar los Props aceptados por otro componente, incluso si ese componente no exporta ese tipo Props directamente.
---import type { ComponentProps } from 'astro/types';import Button from "./Button.astro";
type MyButtonProps = ComponentProps<typeof Button>;---Corrección del uso de imágenes en Markdown sin un especificador relativo
Anteriormente, usar imágenes en Markdown sin usar un especificador relativo (como ./ o ../) causaba que Astro lanzara un error.
Ahora, puedes usar la sintaxis estándar  en archivos Markdown para imágenes colocadas en la misma carpeta: ¡no se requiere especificador relativo!
No hay necesidad de actualizar tu proyecto; tus imágenes existentes seguirán funcionando. Sin embargo, puedes eliminar con seguridad cualquier especificador relativo de estas imágenes en Markdown ya que ya no son necesarias… ¡como la especificación de Markdown pretendía!
 <!-- This dog lives in the same folder as my article! -->¡Gracias a Oliver Speir por contribuir esta corrección!
Corrección de Bugs
Como siempre, se incluyen correcciones de bugs adicionales en este lanzamiento. Consulta las notas del lanzamiento para saber más.
