This commit is contained in:
2026-10-08 06:49:13 +04:00
parent 41d434ef97
commit 35611e2a91
84 changed files with 3430 additions and 375 deletions

View File

@@ -1,42 +1,47 @@
# DocxGenerator
# lab_gen — генераторы отчётных документов
Автономный генератор отчётов **DOCX** из **Markdown** по дизайну
[СТО 02068410-004-2018](documentation/STO_SGAU_02068410-004-2018.md).
Поведение полностью задаётся файлом `config.yaml`; путь выходного файла — ключ
`document.output`.
Монорепозиторий из двух независимых Node.js-генераторов, которые собирают
отчётные документы из обычного Markdown по заданному шаблону/стандарту.
Полная документация: **[AGENTS.md](AGENTS.md)** — CLI, схема конфига, формат контента,
директивы и сборка `.exe`.
## Быстрый старт
```powershell
.\DocxGenerator.exe --init # создать config.yaml, примеры content/ и content/assets/
# ... правим config.yaml и content/*.md ...
.\DocxGenerator.exe --check # проверить ссылки и конфиг
.\DocxGenerator.exe # собрать report.docx
```
lab_gen/
├── docx/ # генератор DOCX по СТО 02068410-004-2018 (отчёт)
├── pptx/ # генератор PPTX по шаблону Самарского университета (презентация)
└── tools/ # общие внешние инструменты (plantuml.jar)
```
## Разработка
## docx/ — DocxGenerator
Автономный генератор отчётов **DOCX** из Markdown по дизайну
СТО 02068410-004-2018. Поддерживает титульный лист, оглавление, таблицы, рисунки
(включая PlantUML), формулы, список источников и приложения.
```powershell
cd docx
npm install
npm run generate # локальная сборка report.docx
npm run check # проверка конфига и ссылок
npm run build:exe # собрать DocxGenerator.exe в корне (@yao-pkg/pkg, node24-win-x64)
npm run check # проверка конфига и ссылок
npm run generate # собрать report.docx
```
## Структура репозитория
Полная документация — [docx/AGENTS.md](docx/AGENTS.md).
| Путь | Назначение |
|------|------------|
| `src/cli.js` | точка входа, разбор аргументов |
| `src/config/` | дефолты, загрузка и валидация `config.yaml`, шаблон |
| `src/markdown/` | markdown-it, директивы `:::`, инлайн-ссылки `[@n]`, `@fig/@tbl/@eq` |
| `src/render/` | сборка DOCX: стили, примитивы, нумерация, слияние титульника |
| `src/build.js` | оркестрация сборки |
| `content/` | примеры Markdown |
| `content/assets/` | PNG для рисунков, опциональный `title-page.docx` |
| `documentation/` | стандарт СТО |
## pptx/ — lab-gen-pptx
Инструмент не рендерит диаграммы: PNG готовятся заранее и кладутся в `content/assets/images/`.
Генератор презентаций **PPTX** из Markdown по фирменному шаблону Самарского
университета (16:9, синий фон, логотип, фирменный шрифт). Задники и правила
оформления извлечены из `presentation_16.pptx` и заданы в `config.yaml`.
```powershell
cd pptx
npm install
npm run check # проверка конфига и ссылок
npm run generate # собрать presentation.pptx
```
Формат слайдов, схема конфига и CLI описаны в [pptx/AGENTS.md](pptx/AGENTS.md).
## Требования
- Node.js 18+ (для локальной сборки).
- Java 11+ и `tools/plantuml.jar` — для рендеринга схем PlantUML (`.puml`)
в обоих генераторах. Путь задаётся ключом `plantuml.jar` в `config.yaml`.