2.9 KiB
ADR-0009: Один main.typ, видимая документация и явная приватная сборка
Дата: 2026-08-31
Статус: Принято
Часть решения об отдельной private build task заменена условным import из ADR-0010. Один
main.typи видимая публичная документация остаются действующими.
Контекст
Проверка шаблона на реальных отчётах показала, что авторы ожидают менять компанию, стадию, режим и список глав в одном файле. Три корневых entrypoint-файла и скрытая пользовательская справка создавали лишний выбор. Одновременно Typst 0.15 не умеет безопасно проверять существование private path.
Рассматриваемые варианты
- Сохранить
document.typи три entrypoints — технически чисто, но пользователь должен понимать разделение ролей четырёх файлов. - Один
main.typи tracked private placeholders с заменой — просто, но реальная подпись становится изменением уже отслеживаемого файла. - Один
main.typ, publicdocs/, internal placeholders и private task — минимальная поверхность без риска добавить реальный media в Git.
Решение
Выбран третий вариант:
main.typсодержитcompany-id,document-mode, metadata и#include;docs/видим и содержит executable examples;- examples одновременно являются источниками задачи выбора типа;
- обычная сборка использует internal placeholders;
- задача приватной сборки проверяет
private-assets.zip, копирует PNG в.private/и передаёт--input private-assets=true; - прежний ADR-0007 считается устаревшим.
Последствия
Становится проще: первый запуск, переключение режима, поиск примеров, выбор типа и выпуск с приватными изображениями.
Становится сложнее: main-файлы четырёх примеров частично повторяют setup-код; PowerShell tool становится security boundary для ZIP.
Закрывает дверь на: отдельные root entrypoints для режимов, скрытую public-документацию и замену tracked placeholders реальными файлами.