Pull to refresh

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

Reading time2 min
Views799

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

Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 7: ↑7 and ↓0+7
Comments0

Other news