Разработчики генератора статических сайтов Astro выпустили версию 4.3. В ней появилась экспериментальная функция конфигурации доменов для i18n, добавили больше контроля над HTML-файлами, а изображения в Markdown теперь можно использовать без идентификатора относительных ссылок.
Основные нововведения Astro 4.3:
Для разных доменов или поддоменов можно настроить конфигурацию i18n. К примеру, для
example.ru
можно использовать русскоязычную версию сайта, а дляexample.com
— англоязычную. Для доступа к функции необходимо активировать экспериментальный флагi18nDomains
и внести изменения в конфигурационный файлastro.config.mjs
:
// 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
},
})
Важно отметить, что функция не будет работать с предварительно созданными страницами. Для этого нужна возможность смены языка на стороне сервера.
Исправили использование изображений в Markdown без идентификатора относительных ссылок (
./
или../
). Теперь можно использовать стандартный синтаксис. Такая конструкция больше не вызывает ошибку.В
build.format
появилась опцияpreserve
, которая даёт больше контроля при сборке проектов. Этот параметр конфигурации сгенерирует HTML-файлы точно так же, как они отображаются в исходной папке. К примеруsrc/pages/about.astro
создаст/about.html
, аsrc/pages/about/index.astro
—/about/index.html
.Теперь Astro поддерживает экспорт из
astro/types
типаComponentProps
, который похож наReact.ComponentProps
или экспортComponentProps
для Svelte.
---
import type { ComponentProps } from 'astro/types';
import Button from "./Button.astro";
type MyButtonProps = ComponentProps<typeof Button>;
---