Skip to content

v3.0.0 – Таблицы, списки, markdown-заголовки, переработка скиллов

Choose a tag to compare

@id-andyyy id-andyyy released this 23 Apr 16:35
· 1 commit to main since this release

🧪 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 – переработаны