Files
test/.template/development/docs/adr/0010-private-folder-and-employees.md
T
2026-10-09 04:24:38 +00:00

2.8 KiB

ADR-0010: Папка .private, справочник сотрудников и частичные подписи

Дата: 2026-08-31
Статус: Принято

Контекст

ZIP installer и отдельная build task скрывали второй переключатель private media от автора и не поддерживали реальные фамильные имена PNG. В проектах подписи поступают постепенно, а для каждого изображения уже подобрано индивидуальное вертикальное смещение. Чистый fork при этом обязан собираться без приватного каталога.

Рассматриваемые варианты

  1. Оставить ZIP и sys.inputs — безопасно для clean fork, но preview и обычная task не совпадают, а схема имён жёстко привязана к ролям.
  2. Автоматически сканировать .private — желаемый UX, но Typst 0.15 не предоставляет file-exists и падает при попытке открыть отсутствующий PNG.
  3. Условный import и явная карта доступности — один параметр в main.typ, отсутствие записи означает пустое место, offsets живут рядом с приватными PNG.

Решение

Выбран вариант 3. Публичный tracked-справочник хранит идентификатор, ФИО, обычную должность и фиксированное имя PNG. Игнорируемый .private/settings.typ хранит доступность и offset. main.typ импортирует его только при literal use-private-assets = true. Все build/preview пути используют один entrypoint.

Последствия

Становится проще: копировать .private целиком, менять роль сотрудника в одной строке, видеть реальные подписи в preview, работать при частично полученных PNG и публиковать clean fork с false.

Становится сложнее: при получении нового PNG нужно вручную включить запись; включённый, но отсутствующий файл по-прежнему вызывает точную ошибку Typst.

Закрывает дверь на: автоматическое определение файлов, role-based имена responsible.png, отдельную private build task и ZIP installer.