Разработчики генератора статических сайтов 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; —
Источник: habr.com