v3.0.0 – Таблицы, списки, markdown-заголовки, переработка скиллов
🧪 LabAI v3.0.0
Масштабное обновление по результатам анализа 30+ лабораторных работ по четырём предметам. Устранены все повторяющиеся проблемы, из-за которых приходилось каждый раз переписывать скрипты.
Что нового
📊 Markdown-таблицы в DOCX
- Таблицы в report.md (формат
| col | col |) автоматически конвертируются в Word-таблицы (стиль Table Grid) - Заголовки таблиц выделяются жирным, шрифт 14 пт по ГОСТ
- Ширина таблицы 100%, padding ячеек, инлайн-форматирование внутри ячеек
- Ранее для каждой лабы приходилось писать отдельные скрипты (fill_report.py, edit_docx.py, write_report_to_docx.py, modify_docx.py, md_to_docx.py)
📝 Маркированные и нумерованные списки
- item/* item– маркированные списки (символ – длинное тире)N) item– нумерованные списки (формат по ГОСТ)- Корректные отступы: left_indent 2 см, висячий отступ -0,5 см
🔤 Markdown-заголовки
- Поддержка
#/##/###/####наравне с нумерованными (1.,1.1.,1.1.1.) - Добавлен уровень H3 (Heading 3) – ранее поддерживались только H1 и H2
📄 Режим без титульного листа
- Флаг
--no-title-pageдля генерации документа без титульной страницы - Управляется через
config.preferences.no_title_page
🏷 Тип работы и преподаватель на титульном листе
config.course.lab_type– «Лабораторная работа» / «Практическая работа» / «Задание» (ранее было захардкожено)config.course.reviewer– ФИО преподавателя на титульном листе (опционально)
✏️ Стиль отчёта result_only
- Новый стиль в
/lab-draft: только результаты, без описания процесса – для работ с минимальным объёмом
Что исправлено
🔧 Красная строка 2 см вместо 1,5 см
- Причина: шаблоны-пустышки содержат ненулевой
left_indentв стиле Normal, который суммировался сfirst_line_indent - Исправлено: каждый вставленный параграф явно задаёт
left_indent = 0
🔧 Изображения вылезали за правое поле
- Макс. ширина изменена с 17 см на 15,5 см (= 17 см текста минус 1,5 см красной строки)
- Вынесена функция
_calc_image_width()для единообразного расчёта
Переработка скиллов
🖼 /lab-report
- Сопоставление изображений строго по содержимому (vision), а не по имени файла или дате
- Двойная проверка каждого сопоставления
- Автоматический бэкап шаблона (
.backup) перед вставкой
📋 /lab-draft
- Новый шаг: анализ готовых изображений в
images/перед написанием отчёта - Данные со скриншотов (IP-адреса, результаты команд и т.д.) используются в тексте
⚙️ /lab-setup
- Шаблон-пустышка: парсинг титульного листа для извлечения данных (ФИО, группа, предмет, преподаватель) – сокращает опрос
- Новые поля:
lab_type,reviewer,no_title_page
🔄 Обновлённые файлы
generate_docx.py– +470 строк (таблицы, списки, markdown-заголовки, H3, --no-title-page, lab_type, reviewer, left_indent fix, image width fix)gost-formatting.md– правила таблиц, списков, markdown-заголовков, исправлена макс. ширина изображенийrequirements.txt– добавлен matplotlib/lab-report,/lab-draft,/lab-setup– переработаны