Зачем так делать

  • сайт состоит из обычных файлов: быстро открывается и дёшево хостится;
  • новая страница — это запись в файле данных, а не ручная вёрстка;
  • общие части (шапка, подвал, разметка для поисковиков) меняются в одном месте.

Из чего состоит

  1. Файл с данными: список страниц с заголовком, описанием и текстом.
  2. Функция page(), которая оборачивает содержимое в общий шаблон: <head>, шапку, подвал.
  3. Цикл, который для каждой записи создаёт папку и index.html.
  4. Генерация sitemap.xml, robots.txt и llms.txt по списку страниц.
  5. Одна команда: python3 build.py собирает всё в папку dist.

Что ещё важно

Экранируй пользовательский текст (html.escape), чтобы случайный символ не сломал страницу. Для чистых адресов вида /page/ создавай папка/index.html. Результат выкладывай на хостинг для статики, например Vercel.

Частые вопросы

Нужен ли Node.js?

Нет. Скрипт на чистом Python собирает сайт без установки пакетов.