HERON

Основы · 5

Как работает сборка

Когда вы запускаете heron build, HERON читает папку сайта и записывает готовый сайт в папку dist/. Эта страница показывает, что происходит по дороге, чтобы странный результат или сообщение об ошибке стали понятны.

Программирования здесь нет: только путь одной страницы от текстового файла до браузера и то, как читать сообщения сборки.

Простыми словами

Представьте типографию. Вы приносите текст (файлы .md), фотографии (media/) и несколько указаний (site.yaml). У типографии есть макет — тема. Она проверяет, что ничего не забыто, верстает каждую страницу в макет, готовит фото под каждый формат и печатает весь тираж. Готовый тираж — это папка dist/: обычные веб-страницы, которые отдаст любой хостинг.

Типография каждый раз работает одинаково. Одна и та же папка всегда даёт один и тот же сайт — на ноутбуке, на GitHub и на сервере.

Когда нужна эта страница: когда сайт выглядит не так, как вы ждали, или сборка остановилась с ошибкой. Когда можно пропустить: пока всё работает.

Одна страница: от файла до браузера

  1. 1

    Вы пишете файл

    Например, prices.md в папке вашего языка: настройки вверху, ниже текст с секциями. Как — показано в Markdown за 10 минут.
  2. 2

    HERON находит его

    Место файла задаёт адрес страницы: prices.md становится /prices/. Если языков несколько, копия в папке второго языка получает его префикс, например /de/…. Список страниц вести не нужно: новый файл — новая страница.
  3. 3

    HERON читает его

    Настройки становятся заголовком для поиска, заголовком страницы и описанием. Текст делится на секции по заголовкам ##, и каждая получает форму: текст, список, шаги, карточки, таблица, вопросы. См. Формы секций.
  4. 4

    HERON связывает его

    Страница попадает в меню, хлебные крошки, список своей папки и переключатель языков. Каждая ссылка, которую вы написали в тексте, проверяется.
  5. 5

    HERON планирует фото

    Для каждого фото, которое может попросить тема, HERON планирует лёгкие копии в нескольких размерах и современных форматах (WebP, AVIF). Оригинал не трогается.
  6. 6

    Тема рисует страницу

    Шаблон ставит секции на свои места. Результат — один готовый HTML-файл: dist/prices/index.html.
  7. 7

    HERON пишет служебное

    Карту сайта для поисковиков, robots.txt, llms.txt для нейросетей, ленту новостей, переадресации со старых адресов и разметку для поиска внутри каждой страницы.
  8. 8

    Всё ложится в dist/

    Страницы, размеры фото, стили, скрипты. Браузер потом получает ровно эти файлы: когда посетитель открывает страницу, ничего не вычисляется.

Что на входе и что на выходе

В вашей папкеВ dist/
content/en/index.mdindex.html, главная
content/en/prices.mdprices/index.html, адрес /prices/
content/de/prices.md (второй язык)de/…/index.html, адрес с префиксом языка
media/team.jpgmedia/…, копии нескольких ширин, WebP и AVIF
site.yamlНазвание, меню и контакты на каждой странице, sitemap.xml, robots.txt, llms.txt
theme/Внешний вид: HTML-макет, assets/ со стилями и скриптами
static/Копируется как есть, например файл подтверждения для поисковика

Три вида сборки

Как читать отчёт сборки

В конце HERON печатает отчёт. Обычный заканчивается числом записанных файлов:

Files written: 128 → my-site/dist

Когда что-то не так, HERON называет файл, строку, что не так и что сделать. Ошибка останавливает сборку:

E002 content/en/prices.md:3: пустое описание
  что сделать: добавьте description до 155 знаков

Предупреждение не останавливает пробную сборку, но останавливает итоговую:

Предупреждений — 2:
  ссылки — 1:
    ru/about.md:14: ссылка /team/ никуда не ведёт
  прочее — 1:
    ru/prices.md: title длиннее 60 знаков (71)

Как это читать:

  • Код (E002) — вид проблемы. Список кодов — в разделе Если что-то пошло не так, полностью — в спецификации сборки.
  • Путь и число — файл и строка, которые нужно открыть в редакторе.
  • «что сделать» — исправление. Обычно одна строка.
  • Предупреждения сгруппированы (ссылки, картинки, переводы…), самое важное сверху. Полный список сохраняется рядом с dist/, в .heron-cache/warnings.txt.

Исправьте первую ошибку, сохраните, соберите снова. Часто одна правка убирает несколько сообщений.

Почему это быстро

HERON делает работу один раз, при сборке. Посетитель получает готовый файл: ничего не нужно вычислять, не нужно спрашивать базу данных, на сервере нечему ломаться. Поэтому стартовый сайт получает 100 баллов скорости в Lighthouse на телефоне, а тысяча страниц на двух языках собирается за несколько секунд.

Медленная часть первой сборки — фото: каждый размер кодируется один раз. HERON хранит их в кэше, поэтому следующие сборки занимают секунды.

Вопросы

Нужно собирать после каждой правки?

Пока вы пишете, heron serve собирает сам при каждом сохранении. Итоговая сборка нужна только для публикации, а с git push её запускает GitHub.

Моя правка не видна. Почему?

Проверьте, что файл сохранён и лежит внутри content/. Если смотрите живой сайт — он меняется только после итоговой сборки и выкладки. Обновите страницу в браузере с зажатым Shift, чтобы он не показывал сохранённую копию.

Можно сломать сайт неправильным файлом?

Неправильный файл остановит сборку с сообщением, а живой сайт останется прежним. В этом и смысл строгой сборки: сломанная версия не выходит.

Что дальше?

Положите папку на GitHub: Git и GitHub. Полное описание сборки — в разделе Сборка: этапы, команды, ошибки.