# Автотитульник md2gost умеет **сам собрать титульный лист** из вшитого шаблона `TitleTemplate.docx`, подставив институт, кафедру, дисциплину, преподавателя, номер работы, ФИО и группу. Готовый чужой DOCX титула (`--title` / «Настройки → Файлы → Титульный лист») по-прежнему работает и **полностью отключает** автогенерацию. --- ## Когда титул генерируется Автотитул **по умолчанию выключен**. Включается явно: - CLI: `--auto-title` - GUI: галочка **«Автотитул»** При включённом автотитуле он собирается, если одновременно: 1. **Не задан** явный путь к титульному DOCX (`--title` пуст, в GUI поле «Титульный лист» пустое). 2. Рядом с `.md` есть файл **`info_conv.yaml`** *или* в начале Markdown есть блок **\`\`\`title**. Если автотитул выключен или нет ни yaml, ни блока `title` — титул не вставляется (готовый DOCX по `--title` по-прежнему можно передать отдельно). ФИО и группа **обязательны** для генерации: из профиля GUI / `md2gost.user.json` или из `--student` / `--group`. Без них конвертация с `--auto-title` завершится ошибкой с подсказкой. --- ## Быстрый сценарий (GUI) 1. Первый запуск → окно **«Данные студента»**: введите **ФИО** и **группу**, сохраните. Позже: **Настройки → Студент…**. 2. В папке с отчётом создайте `info_conv.yaml` (см. ниже). 3. В начале `.md` при необходимости добавьте блок \`\`\`title с номером работы и годом. 4. Включите галочку **«Автотитул»** на главном окне. 5. **Не** указывайте готовый титул в «Настройки → Файлы», если хотите автогенерацию. 6. Конвертируйте как обычно — перед телом отчёта появится титул. Профиль студента хранится в `md2gost.user.json` рядом с приложением (рядом с exe или в текущей папке при `python -m md2gost`) — тот же каталог, что и `md2gost.schemes.json`. В том же файле блок `metadata` — свойства DOCX (автор/название/примечание); GUI: **Настройки → Метаданные…**, CLI: `--doc-*`. Это не поля титульного листа. --- ## `info_conv.yaml` (данные курса / кафедры) Файл кладётся **в тот же каталог**, что и конвертируемый `.md`. Имя строго: `info_conv.yaml`. Пример: ```yaml Институт: Институт информационных технологий (ИИТ) Кафедра: Кафедра цифровой трансформации (ЦТ) Дисциплина: Проектирование архитектуры цифровой организации Преподаватель: Иванов Иван Иванович Должность: старший преподаватель, кафедра ЦТ ``` Формат — плоский список `ключ: значение` (UTF-8). Вложенный YAML и списки не нужны. Строки с `#` в начале — комментарии; хвост ` # …` в значении отрезается. Один `info_conv.yaml` удобно держать на весь семестр/дисциплину и не копировать институт с кафедрой в каждый отчёт. --- ## Блок `title` в Markdown Опциональный блок в **начале** файла (до `# *СОДЕРЖАНИЕ`), ограда языка `title`. Перед конвертацией он **вырезается** из тела отчёта и не попадает в DOCX как код. Типичное использование — номер работы и год: ````markdown ```title number: 1 year: 2026 ``` # *СОДЕРЖАНИЕ [TOC] … ```` Можно переопределить любые академические поля прямо в блоке (они сильнее yaml): ````markdown ```title number: 3 year: 2026 discipline: Другая формулировка дисциплины teacher: Петров П. П. ``` ```` Английские ключи тоже принимаются: `institute`, `department`, `discipline`, `teacher`, `teacher_position`, `number`, `year`. --- ## Поля: куда попадают и откуда берутся | Поле на титуле | Ключи (любой из вариантов) | Источник | |----------------|----------------------------|----------| | Институт | `Институт`, `Institute`, `institute`; опечатка `Инститиут` | yaml / \`\`\`title | | Кафедра | `Кафедра`, `Department`, `department` | yaml / \`\`\`title | | Дисциплина (в «…») | `Дисциплина`, `Discipline`, `discipline` | yaml / \`\`\`title | | № практической работы | `number`, `номер`, `№`, `n` | \`\`\`title (иначе `1`) | | Группа («студент группы …») | — | профиль GUI / `--group` | | ФИО студента | — | профиль GUI / `--student` | | Должность преподавателя | `Должность`, `должность преподавателя`, `teacher_position` | yaml / \`\`\`title | | ФИО преподавателя | `Преподаватель`, `Преподователь`, `Teacher`, `teacher` | yaml / \`\`\`title | | Год («Москва … г.») | `year`, `год` | \`\`\`title (иначе текущий календарный год) | Строка «ОТЧЁТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ» и шапка МИРЭА в шаблоне **не** заполняются из переменных — это фиксированный текст шаблона. ФИО/`группа` из yaml или \`\`\`title **игнорируются** (даже если написать `Студент:` / `Группа:`) — студент всегда из профиля или CLI. --- ## Приоритет слияния ``` Академические поля: info_conv.yaml < ```title (блок сильнее) Студент / группа: md2gost.user.json < --student / --group Явный титул DOCX: --title / путь в GUI → генератор не вызывается ``` `year` без значения → текущий год. `number` без значения → `1`. --- ## CLI ```bash # автотитул выкл. по умолчанию — только тело отчёта python -m md2gost report.md -o report.docx # включить автотитул (yaml + профиль из md2gost.user.json) python -m md2gost report.md -o report.docx --auto-title # ФИО и группа на один прогон python -m md2gost report.md --auto-title --student "Тарасов Игорь Алексеевич" --group ИНБО-31-23 # свой готовый титул — автогенерация не используется python -m md2gost report.md --title title.docx ``` --- ## Пример структуры папки ``` Отчет_практики/ info_conv.yaml ← институт, кафедра, дисциплина, препод report_pr1.md ← в начале ```title с number/year figures/ … ``` `report_pr1.md`: ````markdown ```title number: 1 year: 2026 ``` # *СОДЕРЖАНИЕ [TOC] # *ВВЕДЕНИЕ … ```` --- ## Частые вопросы **Титул не появился.** Проверьте: включён ли `--auto-title` / галочка «Автотитул»; нет ли пути в «Титульный лист» / `--title`; есть ли `info_conv.yaml` или \`\`\`title; заполнены ли ФИО и группа. **Не тот номер работы.** Задайте `number:` в \`\`\`title — из yaml номер не читается (только из блока или дефолт `1`). **Нужен другой шаблон вёрстки.** Сейчас слоты привязаны к bundled `TitleTemplate.docx`. Чужой макет — собирайте титул вручную и передавайте через `--title`. **Задание (бланк).** Автотитул не заменяет бланк задания: по-прежнему `--assignment` / «Бланк задания» в GUI. **Где лежит профиль.** `md2gost.user.json` рядом с приложением (см. каталог схем). Не коммитьте его с чужими ФИО в общие репозитории отчётов — это локальные данные студента.