Релиз Astro 4.3: конфигурация доменов для i18n и больше контроля над HTML-файлами

от автора

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


ссылка на оригинал статьи https://habr.com/ru/articles/791732/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *