Astro 4.1

Автор
Erika
Emanuele Stoppa
Matthew Phillips
Nate Moore
Bjorn Lu

После небольшого праздничного перерыва мы вернулись с новым релизом Astro! Astro 4.1 включает исправления и улучшения. После праздников релиз чуть меньше обычного, но мы рады вернуться к работе над Astro — в 2024 запланировано много интересного!

Основные новинки:

Чтобы воспользоваться новинками, убедитесь, что у вас последняя версия Astro. Обновитесь до Astro 4.1 командой @astrojs/upgrade:

npx @astrojs/upgrade

или командой вашего менеджера пакетов:

npm install astro@latest
pnpm upgrade astro --latest
yarn upgrade astro --latest

New accessibility audit rules

Добавлены два новых правила аудита для dev toolbar. Теперь предупреждения о:

  • неподдерживаемых ARIA-атрибутах;
  • отсутствующих атрибутах, необходимых для ARIA role.

Оба правила помогают убедиться, что элементы страницы имеют корректные и валидные ARIA roles.

Extended client:visible directive

Директива client:visible теперь принимает опцию rootMargin — отступ вокруг viewport для расчёта видимости. Компонент гидратируется, когда он близко к viewport, а не только при появлении в нём.

<!-- Load component when it's within 200px away from entering the viewport -->
<Component client:visible={{rootMargin: "200px"}} />

Кодирование/декодирование cookies теперь настраивается через функции encode и decode при установке и получении cookies.

Например, можно обойти стандартное кодирование через encodeURIComponent, добавляя URL в cookie:

---
import { encodeCookieValue } from './cookies';
Astro.cookies.set('url', Astro.url.toString(), {
// Override the default encoding so that URI components are not encoded
encode: (value) => encodeCookieValue(value),
});
---

Позже декодируйте URL тем же способом:

---
import { decodeCookieValue } from './cookies';
const url = Astro.cookies.get('url', {
decode: (value) => decodeCookieValue(value),
});
---

Bug Fixes

В релизе есть дополнительные исправления. Release notes.