Доступен Astro 4.3! В релизе — новая экспериментальная i18n-функция, улучшения работы с build output, типами props компонентов, изображениями в Markdown и многое другое.
Основные новинки:
- Экспериментально: поддержка доменов для i18n
- Больше контроля над HTML-выводом
- Утилита типа
ComponentProps - Лучшая поддержка относительных изображений в Markdown
How to upgrade
Чтобы воспользоваться новинками, убедитесь, что у вас последняя версия Astro. Обновитесь до Astro 4.3 командой @astrojs/upgrade:
npx @astrojs/upgradeили командой вашего менеджера пакетов:
npm install astro@latestpnpm upgrade astro --latestyarn upgrade astro --latestExperimental: Add domain support for i18n
Astro 4.3 добавляет экспериментальную конфигурацию domains для i18n — разные домены или поддомены для разных локалей.
Например: example.com для английского, fr.example.com для французского, example.es для испанского.
Включите флаг i18nDomains и сопоставьте локали с доменами через i18n.domains в 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 },})Функция требует полностью server-rendered сайт без prerendered страниц. Сейчас поддерживаются адаптеры @astrojs/node и @astrojs/vercel, совместимость с другими адаптерами в планах!
Подробнее: документация по интернационализации.
More control over your HTML file output
Новая опция build.format — preserve — даёт больше контроля над HTML-файлами в production-сборке.
Текущие опции (file и directory) либо строят все HTML как файлы по имени маршрута (/about.html), либо как index.html во вложенных папках (/about/index.html). При file нельзя создать отдельные index-страницы (/about/index.html).
Вместо breaking change для file добавлен формат preserve — сохраняет структуру файловой системы в production:
about.astro→about.htmlabout/index.astro→about/index.html
Что видите — то и получаете! Лучшая совместимость с веб-серверами со строгими требованиями к структуре файлов.
Подробнее: справочник build.format.
Add ComponentProps type utility
Astro теперь экспортирует утилиту типа ComponentProps из astro/types — тип props Astro-компонента. Аналог React.ComponentProps или ComponentProps в Svelte.
Позволяет ссылаться на Props другого компонента, даже если он не экспортирует этот тип напрямую.
---import type { ComponentProps } from 'astro/types';import Button from "./Button.astro";
type MyButtonProps = ComponentProps<typeof Button>;---Fix using images in Markdown without a relative specifier
Раньше изображения в Markdown без относительного префикса (./ или ../) вызывали ошибку Astro.
Теперь стандартный синтаксис  работает для изображений в той же папке — относительный префикс не нужен!
Обновлять проект не обязательно — существующие изображения продолжат работать. Можно безопасно убрать относительные префиксы — как и задумано в спецификации Markdown!
 <!-- This dog lives in the same folder as my article! -->Спасибо Oliver Speir за этот фикс!
Bug Fixes
Как обычно, в релизе есть дополнительные исправления. Release notes.
