presentation-foundation.md 2.8 KB

Модуль: Основа вёрстки

Ответственность: предоставляет общие design tokens, режимы выпуска и безопасные presentation-примитивы без правил конкретного вида документа. Расположение: .template/lib/presentation/foundation.typ

Публичный интерфейс

Символ Тип Описание
design-tokens() конструктор dictionary Шрифты, размеры, цвета, интервалы и стандартные поля страницы
apply-foundation() show-функция Применяет локальные общие text/par/page defaults к body renderer
render-media-slot() функция Отображает ресурс по policy hide, placeholder, reserve-space
render-mode() чистая функция Нормализует final, draft, clean-copy
watermark-layer() функция Создаёт слой watermark без изменения domain данных

Зависимости

Модуль Что использует
.template/lib/domain/document.typ RenderOptions и режим выпуска
.template/lib/domain/company.typ Brand color и нормализованные ресурсы

Инварианты

  • Foundation не знает, является документ отчётом, письмом, ТКП или договором.
  • Общие defaults локальны body, не протекают в следующий независимый renderer.
  • render-media-slot() никогда не вызывает image(none).
  • Размер placeholder и reserve-space задаётся вызывающим компонентом, чтобы не ломать профильную геометрию.
  • Watermark не влияет на layout flow и счётчики.
  • Внутри module scope не создаётся state, общий для нескольких документов.

Намеренно НЕ обрабатывает

  • Титульный лист отчёта.
  • Шапку письма и реквизиты договора.
  • Нумерацию приложений конкретного профиля.
  • Загрузку файлов и JSON.

Заметки для агента

Typst 0.15 изменил baseline у box и block; любые правки foundation требуют visual regression всех профилей. Не переносите сюда profile-specific отступ только потому, что он встречается в двух документах: сначала проверьте, является ли это действительно общим design token.