Rename project to SSAU Generator and restructure content

- Move projects into content/<project>/{docx,pptx} with shared assets/
- Flatten config paths; output = project name in project folder
- Add pptx --init scaffold; remove docx exe build
- Add feature-complete content/example; ignore content/* except example
- Rewrite README and AGENTS.md
This commit is contained in:
2026-10-11 23:25:22 +04:00
parent 35611e2a91
commit bf7816ab7c
80 changed files with 1166 additions and 3432 deletions

View File

@@ -1,44 +1,29 @@
# DocxGenerator
# SSAU Generator DOCX
Автономный генератор отчётов **DOCX** из **Markdown** по дизайну
Генератор отчётов **DOCX** из **Markdown** по дизайну
[СТО 02068410-004-2018](documentation/STO_SGAU_02068410-004-2018.md).
Поведение полностью задаётся файлом `config.yaml`; путь выходного файла — ключ
`document.output`.
Содержимое задаётся Markdown-файлами и `config.yaml` проекта; путь выходного
файла — ключ `document.output`.
Полная документация: **[AGENTS.md](AGENTS.md)** — CLI, схема конфига, формат контента,
директивы и сборка `.exe`.
Полная инструкция по работе с документом: **[AGENTS.md](AGENTS.md)** — CLI, схема
конфига, формат контента, директивы и PlantUML.
## Быстрый старт
```powershell
.\DocxGenerator.exe --init # создать config.yaml, примеры content/ и content/assets/
# ... правим config.yaml и content/*.md ...
.\DocxGenerator.exe --check # проверить ссылки и конфиг
.\DocxGenerator.exe # собрать report.docx
node docx/src/cli.js --content content/example/docx --check # проверка
node docx/src/cli.js --content content/example/docx # собрать report.docx
```
## Разработка
```powershell
npm install
npm run generate # локальная сборка report.docx
npm run check # проверка конфига и ссылок
npm run build:exe # собрать DocxGenerator.exe в корне (@yao-pkg/pkg, node24-win-x64)
npm run generate # локальная сборка (node src/cli.js)
npm run check # проверка конфига и ссылок
npm run init # создать шаблон проекта
```
## Структура репозитория
| Путь | Назначение |
|------|------------|
| `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/` | стандарт СТО |
Готовые PNG кладутся в `content/assets/images/`. Исходники PlantUML (`*.puml`) можно указать
в `::: figure ... file=images/x.puml` — генератор отрендерит их в PNG через локальный
`plantuml.jar` (требуется Java 11+).
Структура кода: `src/cli.js` (точка входа), `src/config/` (дефолты, загрузка и
валидация `config.yaml`, шаблон), `src/markdown/` (markdown-it и директивы),
`src/render/` (сборка DOCX), `src/plantuml/` (рендеринг схем).