Всё, что нужно знать о релизе Astro 6.4 — подключаемый API процессора Markdown, Rust-процессор Sätteri, сокращающий время сборки на ~1 минуту, и хелпер cf() для экспериментальной расширенной маршрутизации Cloudflare. Полные примеры кода.
28 мая 2026 года вышел Astro 6.4 — один из самых значительных технических релизов в жизненном цикле Astro 6. Если Astro 6.0 представил переработанный dev-сервер и экспериментальный Rust-компилятор, то 6.4 предлагает три функции, которые фундаментально меняют то, как Astro обрабатывает контент и деплой:
markdown.processor) — замена всего пайплайна unified одной опцией конфигурации@astrojs/markdown-satteri) — Rust-процессор Markdown/MDX, сокращающий время сборки на ~1 минутуcf() — настройка экспериментальной расширенной маршрутизации с SESSION KV, ASSETS binding и другими возможностямиЭто руководство подробно рассматривает каждое изменение с практическими примерами кода, стратегиями миграции со старого remark/rehype пайплайна на Sätteri, сравнением случаев использования процессоров и паттернами деплоя Cloudflare с кастомными fetch-обработчиками и Hono middleware.
Пайплайн Markdown в Astro всегда строился на unified — той же экосистеме, которая обеспечивает работу remark, rehype и сотен плагинов для обработки Markdown. Эта экосистема мощная, но не всем подходит. Некоторые разработчики хотят более быструю сборку, другую обработку синтаксиса или процессоры на других языках.
Astro 6.4 добавляет новую опцию конфигурации markdown.processor, которая
позволяет полностью заменить пайплайн. Стандартный процессор — unified(),
поэтому существующие проекты продолжают работать без изменений.
С новым API плагины remark и rehype настраиваются непосредственно в функции процессора, а не в корневой конфигурации markdown:
// astro.config.mjs
import { defineConfig } from 'astro/config';
import { unified } from '@astrojs/markdown-remark';
import remarkToc from 'remark-toc';
import rehypePrism from 'rehype-prism-plus';
export default defineConfig({
markdown: {
processor: unified({
remarkPlugins: [remarkToc],
rehypePlugins: [rehypePrism],
}),
},
});
Существующие корневые опции markdown.remarkPlugins,
markdown.rehypePlugins, markdown.remarkRehype,
markdown.gfm и markdown.smartypants всё ещё работают в Astro 6.4,
но они помечены как устаревшие и будут удалены в Astro 8.0.
Переносите их в форму unified({...}) при обновлении.
| Опция | Статус | Замена |
|---|---|---|
markdown.remarkPlugins |
Устарело | unified({ remarkPlugins: [...] }) |
markdown.rehypePlugins |
Устарело | unified({ rehypePlugins: [...] }) |
markdown.gfm |
Устарело | unified({ gfm: true }) |
markdown.smartypants |
Устарело | unified({ smartypants: true }) |
markdown.remarkRehype |
Устарело | unified({ remarkRehype: {...} }) |
Главная функция в области производительности Astro 6.4 — Sätteri, конвейер
обработки Markdown и MDX, написанный целиком на Rust и распространяемый как
@astrojs/markdown-satteri. В тестах команды Astro переключение документации
Astro и Cloudflare на Sätteri сократило время сборки более чем на минуту —
огромное улучшение для сайтов с большим количеством контента.
Установка Sätteri состоит из двух шагов. Сначала установите пакет:
npm install @astrojs/markdown-satteri
Затем настройте его как процессор в astro.config.mjs:
// astro.config.mjs
import { defineConfig } from 'astro/config';
import { satteri } from '@astrojs/markdown-satteri';
export default defineConfig({
markdown: {
processor: satteri({
features: {
directive: true, // Включить контейнерные директивы (:::)
gfm: true, // GitHub Flavored Markdown
math: false, // LaTeX математика
},
}),
},
});
Разница в производительности между unified (JavaScript) и Sätteri (Rust) впечатляет для сайтов с большим объёмом контента. Вот что сообщила команда Astro:
| Показатель | unified() | Sätteri | Улучшение |
|---|---|---|---|
| Сборка документации Astro | ~2 мин 30с | ~1 мин 20с | -70с |
| Сборка документации Cloudflare | ~3 мин 10с | ~1 мин 50с | -80с |
| Небольшой блог (50 страниц) | ~12с | ~3с | -9с |
| Крупный сайт (5000+ страниц) | ~8 мин | ~3 мин | -5 мин |
Sätteri реализует многие функции Markdown нативно, без необходимости в отдельных remark или rehype плагинах:
:::) — информационные, предупреждающие и кастомные блоки$...$ и $$...$$:smile: → 😄Поскольку эти функции реализованы на Rust, они выполняются значительно быстрее своих JavaScript-аналогов. Для многих проектов переход на Sätteri означает возможность удалить несколько remark и rehype плагинов.
Важное предупреждение: Sätteri не запускает remark или rehype плагины. Если ваш проект зависит от плагинов экосистемы unified (remark-toc, rehype-prism, rehype-autolink-headings и т.д.), у вас два варианта:
Система плагинов Sätteri использует ту же структуру AST, что и unified (MDAST для Markdown, HAST для HTML), поэтому портирование многих remark-плагинов концептуально несложно — нужно адаптировать плагин для работы с нативной манипуляцией деревом на Rust.
Astro 6.3 представил экспериментальную расширенную маршрутизацию, дающую
разработчикам тонкий контроль над обработкой запросов на edge. Astro 6.4 расширяет эту
возможность хелпером cf() из @astrojs/cloudflare, который
автоматически настраивает всё необходимое для Cloudflare.
Хелпер cf() — это удобная функция, которая настраивает:
ASSETS bindinglocals.cfContext — доступ к raw-объекту Cloudflare cf (геолокация, ASN и т.д.)cf-connecting-ipwaitUntil — для фоновых задач, не блокирующих ответ
С кастомным fetch-обработчиком используйте cf() из
@astrojs/cloudflare/fetch:
// src/app.ts
import { astro, FetchState } from 'astro/fetch';
import { cf } from '@astrojs/cloudflare/fetch';
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
const state = new FetchState(request);
const asset = await cf(state, env, ctx);
if (asset) return asset;
return astro(state);
},
};
Если вы используете Hono, применяйте cf() из
@astrojs/cloudflare/hono как middleware:
// src/app.ts
import { Hono } from 'hono';
import { actions, middleware, pages, i18n } from 'astro/hono';
import { cf } from '@astrojs/cloudflare/hono';
const app = new Hono<{ Bindings: Env }>();
app.use(cf());
app.use(actions());
app.use(middleware());
app.use(pages());
app.use(i18n());
export default app;
Миграция со стандартного пайплайна unified на Sätteri требует аудита ваших remark/rehype плагинов. Вот пошаговый подход:
Составьте список всех remark и rehype плагинов в astro.config.mjs и
распределите их по категориям:
Установите @astrojs/markdown-satteri и настройте его только с теми функциями,
которые Sätteri поддерживает нативно. Запустите astro build и проверьте результат.
Для плагинов, которые Sätteri не поддерживает нативно, портируйте их в формат MDAST/HAST плагинов Sätteri. API плагинов похож на unified — вы трансформируете дерево, но выигрыш в производительности достигается за счёт выполнения трансформаций на Rust.
Сравните время сборки до и после миграции. Используйте astro build --verbose
для просмотра времени по этапам. Сайты с сотнями Markdown-страниц получают наибольший
прирост производительности.
| Критерий | Выбрать unified() | Выбрать Sätteri |
|---|---|---|
| Экосистема плагинов | Тысячи remark/rehype плагинов | Нативные возможности + MDAST плагины |
| Скорость сборки | Хорошо для небольших сайтов | В 2-3 раза быстрее для контентных сайтов |
| Кастомные трансформации | Легко через JavaScript плагины | Требуют портирования на Rust |
| Перспективность | Корневые опции устарели (используйте unified()) | Вероятно, стандарт в Astro 7 |
| Порог входа | Знаком тем, кто работает с unified | Минимальный при использовании базовых функций |
| Для каких проектов | Документация с плагинами, кастомные MDX-трансформации | Контентные блоги, маркетинговые сайты, большая документация |
Помимо трёх главных функций, Astro 6.4 включает ряд небольших улучшений и исправлений. Полный список изменений охватывает десятки патчей — вот самые заметные:
getCollection()
Astro 6.4 — значительный шаг вперёд для фреймворка. Подключаемый API процессора Markdown
даёт разработчикам свободу выбора контент-пайплайна, Sätteri предлагает убедительный
прирост производительности для сайтов с большим объёмом контента, а хелпер Cloudflare
cf() упрощает один из самых мощных, но и самых сложных целевых окружений
для деплоя.
Если вы поддерживаете Astro-сайт — особенно документацию, блог или маркетинговый сайт с сотнями Markdown-страниц — экономия в 10-30 секунд на сборке от Sätteri накапливается с каждым CI-запуском, каждой предварительной сборкой и каждым продакшен-деплоем. Для команд, выполняющих десятки сборок в день, это часы сэкономленного времени разработчиков каждый месяц.
Я — full-stack разработчик, специализирующийся на Astro, React и современных веб-фреймворках. Живу в Минске и работаю по всему миру. Обсудим ваш проект.
Хотите сайт на Astro? Смотрите мои услуги по разработке сайтов
markdown: { processor: unified({ remarkPlugins: [remarkToc] }) }. Для Sätteri: markdown: { processor: satteri({ features: { directive: true } }) }. Старые корневые опции — устаревшие, будут удалены в Astro 8.Astro 6.4 — этапный релиз, открывающий новые возможности для контентных сайтов. Rust-процессор Sätteri меняет правила игры для команд, управляющих крупными порталами документации или контентными маркетинговыми сайтами — более быстрая сборка означает более быстрый CI, более быстрые превью и более довольных разработчиков.
Если вам нужна помощь с миграцией сайта на Astro 6.4, внедрением Sätteri или настройкой расширенной маршрутизации Cloudflare — я предоставляю услуги разработки и консалтинга для проектов любого размера на Astro.
Я — full-stack разработчик с фокусом на Astro, React и современные веб-фреймворки. Живу в Минске, работаю удалённо по всему миру. Свяжитесь со мной для обсуждения вашего проекта.
Нужна помощь с миграцией на Astro 6.4, внедрением Sätteri или настройкой Cloudflare? Я предоставляю услуги разработки, миграции и консалтинга. Бесплатная первичная консультация.