4.3 KiB
4.3 KiB
Модуль: Отчёт
Ответственность: реализует профиль научно-технического отчёта как стартовую заготовку, не влияя на деловые документы.
Расположение: .template/lib/presentation/profiles/report.typ
Публичный интерфейс
| Символ | Тип | Описание |
|---|---|---|
report-profile() |
конструктор DocumentProfile |
Принимает метаданные отчёта и безопасные defaults |
render-report() |
renderer-функция | Собирает титул, служебные страницы, body, библиографии и приложения |
report-metadata() |
чистая функция | Нормализует название, тему, договор, этап, том, год и режим исследования |
report-validators() |
массив functions | Проверяет обязательные поля и совместимость опций |
Зависимости
| Модуль | Что использует |
|---|---|
.template/lib/domain/document.typ |
DocumentProfile, DocumentContext |
.template/lib/domain/parties.typ |
Approval и список исполнителей |
.template/lib/appendices.typ |
Локальный контекст заголовков, страниц и нумерации файлов приложений |
.template/lib/presentation/foundation.typ |
Общую страницу, typography и render mode |
.template/lib/presentation/components.typ |
Title primitives, signature rows, tables, formula |
.template/lib/presentation/references.typ |
Cross-references и bibliography sections |
.template/lib/shared/numbering.typ |
Нумерацию глав, фигур, формул и приложений |
Инварианты
- Все report-specific
set/show/stateлокальныrender-report(). - Титульный лист, список исполнителей и содержание независимо включаются параметрами
show_title_page,show_executorsиshow_outline. draft/clean-copyне загружает изображения подписей и печатей при соответствующей media policy.- Отключённая служебная страница не оставляет пустого листа или лишнего разрыва; первая отображаемая страница получает номер 1.
- Counters фигур, таблиц и формул сбрасываются только в границах отчётной главы.
appendicesсодержит только уникальныеpath; название и label принадлежат первому заголовку подключённого файла.- Приложения используют собственную стратегию numbering без изменения других profiles;
attachment()остаётся моделью писем и договоров. - Bibliographies представлены массивом секций; renderer не ограничивает их количество одним
refs.bib. - Пользовательский body не изменяется и размещается после служебных страниц.
Намеренно НЕ обрабатывает
- Адресата исходящего письма.
- Стоимость и срок действия ТКП.
- Стороны и реквизиты договора.
- Загрузку компании и пользовательских файлов.
Заметки для агента
Legacy renderer в
.template/lib/report.typявляется функциональной спецификацией, но его API можно менять. Переносите секции по одной и после каждой сравнивайте snapshots. Сохраните проверенные решения вокруг heading gaps, paragraph indent, continuation tables и executor signatures, пока тест не докажет, что упрощение безопасно.