+65
-38
@@ -13,6 +13,8 @@ USAGE_HELP = """md2gost — Markdown → DOCX (ТЗ МИРЭА / ГОСТ 7.32)
|
||||
1. Перетащите .md в верхнюю область (или кликните по ней).
|
||||
2. Выберите тип документа и параметры в блоке «Основные».
|
||||
Шаблон / титул / задание — Настройки → Файлы.
|
||||
ФИО и группа студента — Настройки → Студент… (спрашивают при первом запуске).
|
||||
Свойства DOCX (автор, название, примечание) — Настройки → Метаданные….
|
||||
PlantUML / Mermaid / Kroki — Настройки → Диаграммы.
|
||||
Свои UML-схемы — меню «Шаблоны UML».
|
||||
3. Нажмите «Конвертировать». Документ сохранится рядом с исходником (или по пути «Выходной DOCX»).
|
||||
@@ -28,14 +30,29 @@ USAGE_HELP = """md2gost — Markdown → DOCX (ТЗ МИРЭА / ГОСТ 7.32)
|
||||
• Проверить по ТЗ — замечания по структуре, «рис.», источникам.
|
||||
• Проверить вёрстку в Word — полупустые страницы (эвристика, возможны ложные срабатывания; нужны Word + pywin32).
|
||||
• Титул / задание — отдельные DOCX, вставляются перед телом отчёта.
|
||||
Автотитул — галочка «Автотитул» / CLI `--auto-title` (по умолчанию **выкл.**):
|
||||
info_conv.yaml рядом с .md + опционально блок ```title (number, year…);
|
||||
ФИО/группа — Настройки → Студент… или --student / --group.
|
||||
Явный путь к титулу отключает генератор. Подробно: docs/title.md.
|
||||
• Свойства файла Word — Настройки → Метаданные… / --doc-author-from, --doc-author, --doc-title, --doc-comments….
|
||||
По умолчанию автор = имя Windows, примечание «Создано при помощи md2gost (ТЗ МИРЭА)».
|
||||
|
||||
CLI (тот же движок)
|
||||
python -m md2gost report.md -o report.docx --type coursework --check
|
||||
python -m md2gost report.md --auto-title --student "Иванов И. И." --group ИНБО-31-23
|
||||
python -m md2gost report.md --doc-author-from student --doc-comments ""
|
||||
python -m md2gost report.docx -o report.md
|
||||
python -m word2md report.docx
|
||||
python -m md2gost --gui
|
||||
md2gost.exe report.md --type PIS_custom --title title.docx
|
||||
md2gost.exe report.md --schemes path/to/md2gost.schemes.json
|
||||
md2gost.exe report.md --styles path/to/md2gost.styles.json
|
||||
|
||||
Импорт Word → Markdown
|
||||
Перетащите .docx или кнопка «Импорт DOCX→MD». Подписи, таблицы, спецразделы
|
||||
переводятся в диалект md2gost. UML/Mermaid из картинок не восстанавливаются.
|
||||
Подробнее: docs/word2md.md.
|
||||
|
||||
Стили JSON (опционально)
|
||||
Оверлей поверх пресета типа документа (--type). Файл md2gost.styles.json рядом с .md
|
||||
или --styles / Настройки → Файлы → «Стили JSON». Меняет поля страницы и параметры
|
||||
@@ -101,12 +118,32 @@ CLI (тот же движок)
|
||||
Alice->>Bob: hello
|
||||
```
|
||||
|
||||
IDEF0 (контекст A-0, рамка NIST):
|
||||
%a0 Контекст +landscape
|
||||
```idef0
|
||||
title Распорядиться товаром
|
||||
node A-0
|
||||
[A0] Распорядиться товаром
|
||||
<- Спрос
|
||||
^ Нормативная документация
|
||||
-> Товар
|
||||
v Персонал
|
||||
```
|
||||
|
||||
DFD (pbauermeister/dfd → Graphviz вшитый/PATH / Kroki):
|
||||
%dfd0 Контекстная DFD
|
||||
```dfd
|
||||
style context
|
||||
entity Client Клиент
|
||||
process System Система учёта заявок
|
||||
Client --> System заявка
|
||||
System --> Client статус
|
||||
```
|
||||
|
||||
+listing — ещё и листинг с исходником.
|
||||
+landscape — отдельная альбомная страница (A4, повёрт на 90°) вокруг рисунка/таблицы, затем снова книжная.
|
||||
Языки: uml, plantuml, mermaid / mmd, или uml-<id> / <id> из файла схем (c4, usecase, bpmn, …).
|
||||
BPMN 2.0: оградка ```bpmn / ```uml-bpmn, макросы Start, UserTask, XOR, Flow, Pool.
|
||||
Формат в Word: PNG по умолчанию (PlantUML и локальный Mermaid ~2× для чёткости); --diagram-format svg — вектор + PNG-запасной (Word 2016+).
|
||||
IDEF0 конвертер не рисует — вставляйте готовый PNG как обычный Рисунок.
|
||||
Языки: uml, plantuml, mermaid / mmd, idef0, dfd / data-flow-diagram, или uml-<id> / <id> из файла схем (c4, usecase, archimate, …).
|
||||
Формат в Word: PNG по умолчанию (PlantUML, локальный Mermaid, IDEF0 и DFD ~2× для чёткости); --diagram-format svg — вектор + PNG-запасной (Word 2016+).
|
||||
Подробнее — Справка → Схемы и раздел ниже в инструкции.
|
||||
|
||||
Формула (номер только если есть ссылка)
|
||||
@@ -129,13 +166,17 @@ IDEF0 конвертер не рисует — вставляйте готовы
|
||||
native — поле Word (обновить при открытии); manual — собирает md2gost.
|
||||
|
||||
Продолжение таблиц / листингов
|
||||
word — после сборки Word COM режет по реальной пагинации и вставляет «Продолжение…»
|
||||
(по умолчанию; нужны Windows + Word + pywin32).
|
||||
off — не резать, Word сам переносит.
|
||||
word — по умолчанию: после сборки Word COM режет по реальной пагинации и
|
||||
вставляет «Продолжение…» (нужны Windows + Word + pywin32). Также уводит
|
||||
таблицу целиком, если внизу страницы зависли только название или
|
||||
название + шапка граф (методичка: рис. Г.3).
|
||||
off — одна таблица, Word сам переносит строки; без авто«Продолжение».
|
||||
Защита от сирот: keep_with_next у подписи/шапки и оценка
|
||||
«подпись+шапка+1 строка» при рендере (без COM слабее, чем word).
|
||||
legacy / caption — режем по оценке высоты в md2gost (может не совпасть с Word).
|
||||
|
||||
Промпт для ИИ — Справка → Промпт для ИИ: выберите промпт, при необходимости
|
||||
включите схемы (C4, BPMN, …) кнопками — макросы допишутся в конец — скопируйте
|
||||
включите схемы (C4, usecase, …) кнопками — макросы допишутся в конец — скопируйте
|
||||
в ChatGPT / Cursor / Copilot, затем дайте тему и черновик.
|
||||
|
||||
Документация — Справка → Документация: встроенный просмотр docs/*.md
|
||||
@@ -151,15 +192,22 @@ SCHEMES_HELP = """СХЕМЫ ДИАГРАММ (PlantUML)
|
||||
Первый запуск
|
||||
Рядом с программой (рядом с md2gost.exe или в текущей папке при python -m)
|
||||
создаётся md2gost.schemes.json из встроенного шаблона.
|
||||
Если файл уже есть — программа его не перезаписывает (ваши схемы сохраняются).
|
||||
При каждом запуске схемы с author=md2gost синхронизируются с шаблоном приложения
|
||||
(добавление новых id, обновление, удаление исчезнувших вроде bpmn).
|
||||
Схемы с пустым или другим author не трогаются.
|
||||
Если правите встроенную схему в GUI и сохраняете — author сбрасывается,
|
||||
чтобы следующая миграция не затёрла ваши правки.
|
||||
|
||||
Оградка в markdown
|
||||
```uml — обычный PlantUML (или ```plantuml)
|
||||
```uml-c4 — схема с id «c4» (то же, что ```c4)
|
||||
```uml-usecase — схема «usecase»
|
||||
```bpmn / ```uml-bpmn — BPMN 2.0 (макросы в diagrams/BPMN.puml)
|
||||
```uml-archimate — ArchiMate 3.2 (макросы Business_*, Rel_Serving, …)
|
||||
```mermaid / ```mmd — Mermaid локально (браузер / Chromium / QuickJS) или через Kroki
|
||||
Встроенные пресеты PlantUML: c4, c4context, c4component, usecase, bpmn.
|
||||
```idef0 — IDEF0 (FIPS 183): боксы, стрелки ICOM, рамка NIST; локальный Pillow
|
||||
```dfd / ```data-flow-diagram — DFD (pbauermeister/dfd): process/entity/store, --> ;
|
||||
Graphviz (вшитый / «Скачать Graphviz» / PATH) или Kroki
|
||||
Встроенные пресеты PlantUML: c4, c4context, c4component, usecase.
|
||||
|
||||
Пример
|
||||
|
||||
@@ -171,18 +219,6 @@ System(app, "Портал")
|
||||
Rel(user, app, "логин")
|
||||
```
|
||||
|
||||
```bpmn
|
||||
StartMessage(s, "заявка")
|
||||
UserTask(t, "Проверить")
|
||||
XOR(gw)
|
||||
End(e_ok)
|
||||
End(e_no)
|
||||
Flow(s, t)
|
||||
Flow(t, gw)
|
||||
CondFlow(gw, e_ok, "да")
|
||||
DefaultFlow(gw, e_no)
|
||||
```
|
||||
|
||||
Поля схемы в JSON
|
||||
title — подпись в GUI
|
||||
version — версия схемы
|
||||
@@ -207,27 +243,17 @@ URL из includes (и !include https://… внутри .puml) при перво
|
||||
«Сбросить кэш includes» в Настройки → Диаграммы или в «Шаблоны UML» удаляет индекс
|
||||
и только файлы, перечисленные в нём.
|
||||
|
||||
BPMN 2.0 (```bpmn)
|
||||
Пул: Pool(alias, "Участник") { Lane(alias, "Роль") { … } }
|
||||
События: Start, StartMessage, StartTimer, CatchMessage, ThrowMessage,
|
||||
CatchTimer, CatchError, End, EndMessage, EndError, EndTerminate
|
||||
Задачи: Task / UserTask / ServiceTask / ScriptTask / ManualTask /
|
||||
SendTask / ReceiveTask / BusinessRuleTask / SubProcess
|
||||
Шлюзы: XOR (Exclusive), AND (Parallel), OR (Inclusive), EventBased
|
||||
Потоки: Flow, CondFlow(from, to, "условие"), DefaultFlow, MessageFlow
|
||||
Данные: DataObject, DataStore, Annotation
|
||||
Граница: BoundaryError/Timer/Message + Attach(task, event)
|
||||
Sequence Flow только внутри пула; между пулами — MessageFlow.
|
||||
|
||||
Чего нет
|
||||
IDEF0 / DFD — PlantUML не умеет; вставляйте готовый PNG как Рисунок.
|
||||
У BPMN нет «прилипания» boundary-события к кромке задачи (ставьте Attach)
|
||||
и нет настоящей двойной окружности у intermediate (толщина линии).
|
||||
Балансировка родитель/потомок DFD между уровнями не проверяется автоматически.
|
||||
|
||||
Рендер
|
||||
UML: Java + plantuml.jar (локально) → иначе локальный Kroki → иначе kroki.io.
|
||||
Mermaid: системный Chrome/Edge → Playwright Chromium (кнопка / --install-chromium) →
|
||||
QuickJS (mermaidx, офлайн) → локальный Kroki → kroki.io.
|
||||
IDEF0: Pillow, без сети и Java.
|
||||
DFD: data-flow-diagram → Graphviz (dot/neato) или Kroki graphviz.
|
||||
Нужны: Graphviz (вшитый / «Скачать Graphviz» / PATH) либо Kroki;
|
||||
пакет data-flow-diagram ставится с md2gost.
|
||||
Формат: PNG по умолчанию (PlantUML / локальный Mermaid ~scale 2 для чёткости, размер на странице как при 1; --diagram-scale); --diagram-format svg — PNG + SVG (svgBlip в Word 2016+).
|
||||
+landscape у %подписи — альбомная страница под широкий рисунок/таблицу.
|
||||
"""
|
||||
@@ -236,6 +262,7 @@ PROMPT_FILES = (
|
||||
("generate-md.md", "Markdown для md2gost"),
|
||||
("generate-mirea-report.md", "МИРЭА / ГОСТ (курсовая, практика, ВКР)"),
|
||||
("generate-pis-custom-report.md", "ПИС — отчёт по практическим работам"),
|
||||
("emulate-student.md", "Стиль: человечный текст, не отчёт ИИ"),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user