Initial commit

This commit is contained in:
tkachenko committed 2026-10-09 01:45:17 +00:00
commit 41d230d524
163 files changed
+11500

No files matched your search

+108
View File
@@ -0,0 +1,108 @@
# Приватные подписи и печати
Настоящие подписи и печати хранятся только в локальной папке `.private`. Весь каталог исключён из Git, поэтому его можно целиком копировать между рабочими проектами с заменой.
## Самый короткий сценарий
1. Скопируйте готовую папку `.private` рядом с `main.typ`.
2. В `main.typ` измените только один параметр:
```typst
#let use-private-assets = true
```
3. Пользуйтесь обычным предпросмотром Tinymist или нажмите `Ctrl+Shift+B`.
Чтобы снова получить безопасную сборку без приватных изображений, верните `false`. При `false` Typst вообще не пытается открыть `.private/settings.typ`, поэтому чистый форк работает даже без каталога `.private`.
## Структура папки
```text
.private/
├── settings.typ
├── scientia/
│ ├── sign.png
│ └── stamp.png
├── technology/
│ ├── sign.png
│ └── stamp.png
├── too/
│ ├── sign.png
│ └── stamp.png
└── executors/
├── Musikhin.png
├── Guzeev.png
├── Fedorov.png
└── ...
```
Необязательно хранить изображения всех компаний и сотрудников. Настройки должны включать только уже существующие PNG.
## Настройки изображений
Файл `.private/settings.typ` выглядит так:
```typst
#let settings = (
companies: (
scientia: (signature: true, stamp: true),
technology: (signature: false, stamp: false),
too: (signature: false, stamp: false),
),
signatures: (
musikhin: (enabled: true, offset: 1.25cm),
guzeev: (enabled: true, offset: 1.4cm),
fedorov: (enabled: false, offset: 0.7cm),
),
)
```
- `signature` — использовать подпись организации `sign.png`;
- `stamp` — использовать печать `stamp.png`;
- `enabled` — использовать PNG сотрудника;
- `offset` — индивидуальное смещение подписи по вертикали.
Полная безопасная заготовка: [examples/private/settings.typ](examples/private/settings.typ).
## Если подпись сотрудника ещё не получена
Укажите `enabled: false` или совсем не добавляйте сотрудника в `settings.signatures`. В списке исполнителей сохранятся должность, ФИО, линия и свободное место для ручной подписи. Сборка не будет обращаться к отсутствующему PNG и не завершится ошибкой.
Typst не умеет заранее проверить наличие файла без попытки его открыть. Поэтому `enabled: false` — явный и надёжный способ обозначить, что подписи пока нет.
## Состав исполнителей и роли
Состав конкретного отчёта задаётся в `main.typ`:
```typst
#let executors = (
report-executor("musikhin", role: "Ответственный исполнитель", private-settings: private-settings),
report-executor("guzeev", role: "Ведущий геомеханик", private-settings: private-settings),
report-executor("fedorov", private-settings: private-settings),
)
```
Чтобы изменить роль сотрудника только в текущем документе, замените текст `role`. Если `role` не указан, используется обычная должность из справочника шаблона. Чтобы убрать сотрудника из отчёта, удалите или закомментируйте одну строку.
## Справочник сотрудников
| Идентификатор | ФИО | Обычная должность | PNG |
|---------------|-----|-------------------|-----|
| `musikhin` | Мусихин А.С. | Ответственный исполнитель | `Musikhin.png` |
| `guzeev` | Гузеев И.А. | Главный геомеханик | `Guzeev.png` |
| `fedorov` | Федоров Д.А. | Инженер-геомеханик | `Fedorov.png` |
| `ilyasov` | Ильясов Б.Т. | Технический директор, к.т.н. | `Ilyasov.png` |
| `khimichev` | Химичев С.С. | Инженер-геомеханик | `Khimichev.png` |
| `brusnicin` | Брусницын И.В. | Инженер-геомеханик | `Brusnicin.png` |
| `ozornin` | Озорнин Д.А. | Геолог | `Ozornin.png` |
| `buhartdinov` | Бухартдинов А.С. | Главный маркшейдер | `Buhartdinov.png` |
| `tkachenko` | Ткаченко А.С. | Инженер-геомеханик | `Tkachenko.png` |
| `moshin` | Мошин В.Е. | Гидрогеолог | `Moshin.png` |
| `mitrokhin` | Митрохин В.А. | Главный гидрогеолог | `Mitrikhin.png` |
| `luzina` | Лузина М.В. | Геолог | `Luzina.png` |
Справочник находится внутри `.template` и синхронизируется через Git. Он не содержит самих подписей или приватных настроек смещения.
## Что попадает в Git
`.gitignore` исключает каталог `.private/` целиком, включая `settings.typ`. Перед Push всё равно посмотрите список Source Control: настоящих PNG там быть не должно.