9.4 KiB
Автотитульник
md2gost умеет сам собрать титульный лист из вшитого шаблона TitleTemplate.docx, подставив институт, кафедру, дисциплину, преподавателя, номер работы, ФИО и группу.
Готовый чужой DOCX титула (--title / «Настройки → Файлы → Титульный лист») по-прежнему работает и полностью отключает автогенерацию.
Когда титул генерируется
Автотитул по умолчанию выключен. Включается явно:
- CLI:
--auto-title - GUI: галочка «Автотитул»
При включённом автотитуле он собирается, если одновременно:
- Не задан явный путь к титульному DOCX (
--titleпуст, в GUI поле «Титульный лист» пустое). - Рядом с
.mdесть файлinfo_conv.yamlили в начале Markdown есть блок ```title.
Если автотитул выключен или нет ни yaml, ни блока title — титул не вставляется (готовый DOCX по --title по-прежнему можно передать отдельно).
ФИО и группа обязательны для генерации: из профиля GUI / md2gost.user.json или из --student / --group. Без них конвертация с --auto-title завершится ошибкой с подсказкой.
Быстрый сценарий (GUI)
- Первый запуск → окно «Данные студента»: введите ФИО и группу, сохраните.
Позже: Настройки → Студент…. - В папке с отчётом создайте
info_conv.yaml(см. ниже). - В начале
.mdпри необходимости добавьте блок ```title с номером работы и годом. - Включите галочку «Автотитул» на главном окне.
- Не указывайте готовый титул в «Настройки → Файлы», если хотите автогенерацию.
- Конвертируйте как обычно — перед телом отчёта появится титул.
Профиль студента хранится в md2gost.user.json рядом с приложением (рядом с exe или в текущей папке при python -m md2gost) — тот же каталог, что и md2gost.schemes.json. В том же файле блок metadata — свойства DOCX (автор/название/примечание); GUI: Настройки → Метаданные…, CLI: --doc-*. Это не поля титульного листа.
info_conv.yaml (данные курса / кафедры)
Файл кладётся в тот же каталог, что и конвертируемый .md. Имя строго: info_conv.yaml.
Пример:
Институт: Институт информационных технологий (ИИТ)
Кафедра: Кафедра цифровой трансформации (ЦТ)
Дисциплина: Проектирование архитектуры цифровой организации
Преподаватель: Иванов Иван Иванович
Должность: старший преподаватель, кафедра ЦТ
Формат — плоский список ключ: значение (UTF-8). Вложенный YAML и списки не нужны. Строки с # в начале — комментарии; хвост # … в значении отрезается.
Один info_conv.yaml удобно держать на весь семестр/дисциплину и не копировать институт с кафедрой в каждый отчёт.
Блок title в Markdown
Опциональный блок в начале файла (до # *СОДЕРЖАНИЕ), ограда языка title. Перед конвертацией он вырезается из тела отчёта и не попадает в DOCX как код.
Типичное использование — номер работы и год:
```title
number: 1
year: 2026
```
# *СОДЕРЖАНИЕ
[TOC]
…
Можно переопределить любые академические поля прямо в блоке (они сильнее yaml):
```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
# автотитул выкл. по умолчанию — только тело отчёта
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:
```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 рядом с приложением (см. каталог схем). Не коммитьте его с чужими ФИО в общие репозитории отчётов — это локальные данные студента.