2.8 KiB
2.8 KiB
Модуль: Основа вёрстки
Ответственность: предоставляет общие 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.