3.7 KiB
3.7 KiB
Модуль: Публичный фасад
Ответственность: предоставляет main.typ и публичным примерам стабильный API, скрывая внутренние DDD-слои и файловую структуру.
Расположение: .template/lib/index.typ
Публичный интерфейс
| Символ | Тип | Описание |
|---|---|---|
document() |
show-функция | Собирает документ из явно переданных company, profile, options и body |
profiles |
module namespace | Конструкторы report, letter, commercial_offer, contract |
components |
module namespace | Поддерживаемые визуальные компоненты для пользовательского content |
references |
module namespace | vref, vrefs, eqref и bibliography helpers |
load-company() |
функция | Загружает публичный профиль и применяет явные resource overrides |
report-executor() |
функция | Разрешает сотрудника, роль, private PNG и offset |
private-company-media() |
функция | Разрешает private подпись и печать организации |
document-profile() |
конструктор dictionary | Extension contract для нового вида документа |
Зависимости
| Модуль | Что использует |
|---|---|
.template/lib/application/render-document.typ |
Единственный application use case |
.template/lib/presentation/profiles/*.typ |
Публичные profile constructors |
.template/lib/presentation/components.typ |
Разрешённый пользовательский набор компонентов |
.template/lib/presentation/references.typ |
Публичные helpers ссылок |
.template/lib/infrastructure/company-assets.typ |
Загрузка профилей компаний |
.template/lib/infrastructure/employees.typ |
Справочник сотрудников и private settings adapter |
Инварианты
main.typи public examples используют один import фасада и не знают внутренних путей.- В фасаде нет чтения пользовательских глав, page layout и profile-specific ветвлений.
- Добавление нового профиля не меняет сигнатуру
document(). - Resource override принимает явные
none,pathили content и не сканирует.private/. - В namespaces экспортируются только документированные символы.
- В diagnostics используется бренд Scientia.
Намеренно НЕ обрабатывает
- Включение пользовательских файлов из
chapters/. - Создание пользовательских paths к
assets/. - Выбор типа документа и режима выпуска.
- Юридическую или смысловую проверку текста.
Заметки для агента
Фасад является границей между пользовательским
main.typи библиотекой. Если public example импортирует domain, infrastructure или конкретный renderer напрямую, фасад недостаточен. Обратная совместимость со старым корневымtemplate.typне требуется; не создавайте alias в корне.