Выбор стека публикации¶
Эта страница объясняет, почему для книги выбран именно этот стек публикации.
Короткий ответ¶
MkDocs + Material for MkDocs остается сильным выбором для книги с авторством в Markdown и Python-стеком:
- низкий порог входа;
- быстрая сборка;
- отличный поиск и навигация из коробки;
- простая публикация в GitHub Pages;
- естественная интеграция с
uv,ruffиty.1234
При этом экосистема сейчас находится в переходной точке: в этом репозитории стек намеренно зафиксирован на mkdocs<2, чтобы сохранить совместимость с текущими плагинами и темой и не тащить в первую версию книги ненужный миграционный риск.
Канонические сценарии публикации
Стек публикации должен поддерживать три канонических сценария как маршруты чтения, а не только страницы сборки. Триаж обращений поддержки требует быстрой сборки, публикации на GitHub Pages, поиска и навигации, читаемых примеров политик и подтверждений, а также стабильных ссылок на артефакты трасс и оценок. Внутренний ассистент знаний требует авторства с приоритетом Markdown, многоязычных страниц, глоссария и поиска, ссылок на источники и обновлений материалов памяти/поиска без лишнего трения. Координация инцидентов требует строгого шлюза сборки, воспроизводимых команд документации, стабильной навигации к страницам инцидентов и выпусков, видимых различий в стиле журнала изменений и дисциплины миграционного риска.
Почему я не ушел сразу в Astro Starlight¶
Starlight очень хорош, если вам нужны:
- MDX и собственные UI-компоненты;
- более тяжелая настройка пользовательского интерфейса;
- тесная связка с экосистемой Astro.5
Но для этой книги сейчас важнее другое:
- писать быстро;
- публиковать надежно;
- держать весь авторский стек в Python;
- не усложнять непрерывные проверки и локальную сборку без реальной необходимости.
Поэтому первая версия сделана на MkDocs, а не на Astro.
Принятая технологическая база¶
Базовый стек¶
uvдля управления Python, виртуальной средой и группами зависимостей;MkDocsиMaterial for MkDocsдля генерации сайта;ruffдля статического анализа;tyкак быстрый проверяющий типы инструмент по мере появления Python-утилит в репозитории.
Опциональный исследовательский стек¶
marimoдля интерактивных исследовательских ноутбуков;polarsдля анализа журналов, трасс и наборов оценочных данных.
В текущем каркасе marimo и polars уже заведены как отдельная группа research, но пока не используются в книге напрямую.
Команды проекта¶
uv sync --group docs --group dev
uv run mkdocs serve
uv run mkdocs build --strict
uv run ruff check .
uvx ty check
Когда стоит мигрировать в Starlight¶
Переход имеет смысл, если в книге появятся:
- React/Vue/Svelte-компоненты внутри глав;
- много кастомного интерактива;
- документационный продукт вместо книги как основной формы.
Пока таких требований нет.