mirror of
https://github.com/StepanovPlaton/SSAUGenerator.git
synced 2026-10-31 10:18:29 +04:00
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:
302
docx/AGENTS.md
302
docx/AGENTS.md
@@ -1,145 +1,123 @@
|
||||
# AGENTS.md — генератор DocxGenerator
|
||||
# AGENTS.md — работа с документом DOCX
|
||||
|
||||
`DocxGenerator` — автономный инструмент, который собирает отчёт в формате **DOCX** из обычных
|
||||
**Markdown**-файлов по фиксированному дизайну СТО 02068410-004-2018. Поведение полностью
|
||||
задаётся файлом `config.yaml`.
|
||||
|
||||
Документ создан и для людей, и для ИИ-агентов: он описывает CLI, формат контента, схему
|
||||
конфига и порядок сборки `.exe`.
|
||||
|
||||
---
|
||||
Генератор `docx/` собирает отчёт в формате **DOCX** из обычных **Markdown**-файлов
|
||||
по фиксированному дизайну СТО 02068410-004-2018. Этот файл — инструкция агенту по
|
||||
созданию и правке конкретного документа. Поведение полностью задаётся `config.yaml`
|
||||
проекта, менять код генератора не нужно.
|
||||
|
||||
## 1. Требования
|
||||
|
||||
- Windows (собранный `.exe` под `win-x64`).
|
||||
- Node.js **только для сборки** `.exe` из исходников. Конечному пользователю Node.js не нужен.
|
||||
- Готовые PNG вставляются без внешних зависимостей. Для рендеринга PlantUML (`.puml`)
|
||||
нужны установленная Java (JRE 11+) и файл `plantuml.jar` (см. п. 4, `plantuml`).
|
||||
- Node.js 18+, зависимости ставятся командой `npm install` в папке `docx/`.
|
||||
- Windows/macOS/Linux.
|
||||
- Готовые PNG вставляются без внешних зависимостей. Для рендеринга PlantUML
|
||||
(`.puml`) нужны Java 11+ и файл `plantuml.jar` (см. `plantuml` в конфиге).
|
||||
|
||||
## 2. Состав дистрибутива
|
||||
## 2. Раскладка проекта
|
||||
|
||||
Проект лежит в `content/<проект>/docx/` рядом с `config.yaml`:
|
||||
|
||||
```
|
||||
DocxGenerator.exe # исполняемый файл
|
||||
config.yaml # настройки (создаётся автоматически при первом запуске)
|
||||
content/ # Markdown-файлы документа и ресурсы
|
||||
*.md
|
||||
assets/
|
||||
images/ # PNG для рисунков (готовятся заранее) и исходники .puml
|
||||
title-page.docx # титульный лист (по умолчанию content/assets/title-page.docx)
|
||||
tools/
|
||||
plantuml.jar # рендерер PlantUML (для файлов .puml)
|
||||
report.docx # результат сборки (путь задаётся document.output)
|
||||
content/<проект>/
|
||||
├── assets/ # общие ресурсы проекта (общие с pptx)
|
||||
│ ├── title-page.docx # титульный лист
|
||||
│ └── images/ # PNG-рисунки и исходники .puml
|
||||
└── docx/
|
||||
├── config.yaml # настройки документа
|
||||
├── 01-introduction.md
|
||||
├── 02-*.md
|
||||
└── 05-bibliography.md
|
||||
```
|
||||
|
||||
Все относительные пути в `config.yaml` считаются **от каталога самого `config.yaml`**.
|
||||
Сам `config.yaml` и папки ищутся **рядом с `DocxGenerator.exe`**.
|
||||
Все относительные пути в `config.yaml` считаются **от каталога самого
|
||||
`config.yaml`**. Если ресурсы общие с презентацией, указывайте их через `../assets`
|
||||
(например, `paths.assets: ../assets`, `document.titlePage: ../assets/title-page.docx`).
|
||||
|
||||
В монорепозитории общий `plantuml.jar` лежит в корне, в `tools/plantuml.jar`,
|
||||
поэтому репозиторный `config.yaml` задаёт `plantuml.jar: ../tools/plantuml.jar`.
|
||||
Для автономного дистрибутива положите `tools/plantuml.jar` рядом с `.exe`
|
||||
(значение по умолчанию при `--init` — `tools/plantuml.jar`).
|
||||
Отчёт собирается в папку проекта и называется по имени проекта:
|
||||
`content/<проект>/<проект>.docx`. Значение ключа `document.output` при такой
|
||||
раскладке — `../<проект>.docx`.
|
||||
|
||||
Структуру проекта создавайте командой `--init`: она формирует `config.yaml`,
|
||||
примеры `*.md` и общий каталог `content/<проект>/assets/` (титульный лист,
|
||||
изображения), который используется и генератором `pptx`.
|
||||
|
||||
Готовый пример со всеми возможностями — `content/example/docx/`.
|
||||
|
||||
## 3. Командная строка
|
||||
|
||||
```
|
||||
DocxGenerator [опции]
|
||||
Из корня репозитория:
|
||||
|
||||
--config <путь> путь к config.yaml (по умолчанию рядом с exe)
|
||||
--content <dir> каталог с config.yaml, content/ и assets/ (по умолчанию рядом с exe)
|
||||
```
|
||||
node docx/src/cli.js [опции]
|
||||
|
||||
--config <путь> путь к config.yaml (по умолчанию config.yaml в текущем каталоге)
|
||||
--content <dir> каталог проекта: config.yaml, *.md и assets/ (по умолчанию текущий)
|
||||
--output <путь> переопределить путь выходного .docx
|
||||
--check только проверить конфиг и ссылки, без записи файла
|
||||
--init создать шаблон config.yaml/content/assets и выйти
|
||||
--init создать шаблон config.yaml/*.md/assets и выйти
|
||||
--verbose подробный вывод
|
||||
--version показать версию
|
||||
--help справка
|
||||
```
|
||||
|
||||
Поведение:
|
||||
|
||||
- Если `config.yaml` не найден, инструмент **сам создаёт** `config.yaml`, примеры `content/*.md`
|
||||
и `assets/images/placeholder.png`, печатает подсказку и завершается.
|
||||
- `--check` не пишет DOCX, но сообщает обо всех ошибках (битые ссылки, выход `[@n]` за границы
|
||||
списка источников, отсутствующие картинки и т.п.).
|
||||
|
||||
Типичный цикл работы:
|
||||
Типичный цикл:
|
||||
|
||||
```powershell
|
||||
.\DocxGenerator.exe --init # первый запуск: получить шаблон
|
||||
# ... правим config.yaml и content/*.md ...
|
||||
.\DocxGenerator.exe --check # проверить
|
||||
.\DocxGenerator.exe # собрать report.docx
|
||||
node docx/src/cli.js --content content/<проект>/docx --init # создать структуру проекта
|
||||
node docx/src/cli.js --content content/<проект>/docx --check # проверить
|
||||
node docx/src/cli.js --content content/<проект>/docx # собрать
|
||||
```
|
||||
|
||||
После любого изменения исходников (`config.yaml`, `*.md`, ресурсов `assets/`)
|
||||
**пересоберите документ**, чтобы результат соответствовал исходникам.
|
||||
|
||||
Если `config.yaml` не найден, инструмент сам создаёт шаблон (`config.yaml`,
|
||||
примеры Markdown и общий `assets/`) и завершается.
|
||||
|
||||
## 4. Схема `config.yaml`
|
||||
|
||||
Любой ключ можно опустить — берётся значение по умолчанию (см. `src/config/defaults.js`).
|
||||
Любой ключ можно опустить — берётся значение по умолчанию (см.
|
||||
`docx/src/config/defaults.js`).
|
||||
|
||||
### document
|
||||
| Ключ | Тип | Смысл |
|
||||
|------|-----|-------|
|
||||
| `output` | string | путь выходного `.docx` |
|
||||
| `titlePage` | string/null | путь к готовому `title-page.docx` (по умолчанию `content/assets/title-page.docx`); `null` — без титульника |
|
||||
| `output` | string | путь выходного `.docx` (относительно `config.yaml`) |
|
||||
| `titlePage` | string/null | путь к готовому `title-page.docx`; `null` — без титульника |
|
||||
| `features.updateFields` | bool | обновлять поля (в т.ч. оглавление) при открытии в Word |
|
||||
|
||||
**Титульный лист.** Берётся готовый DOCX по пути `document.titlePage` и склеивается перед
|
||||
документом; между титульником и основным текстом вставляется разрыв страницы. При `--init`
|
||||
создаётся пример `content/assets/title-page.docx` — замените его своим. Значение `null`
|
||||
отключает титульный лист.
|
||||
Титульный лист склеивается перед документом, между ним и текстом вставляется
|
||||
разрыв страницы. При `--init` создаётся пример `assets/title-page.docx`.
|
||||
|
||||
### paths
|
||||
| Ключ | Смысл |
|
||||
|------|-------|
|
||||
| `assets` | корень ресурсов; `file=images/x.png` в директивах ищется здесь (по умолчанию `content/assets`) |
|
||||
| `assets` | корень ресурсов; `file=images/x.png` в директивах ищется здесь |
|
||||
|
||||
### output
|
||||
Путь и имя выходного `.docx` задаются ключом `document.output` (по умолчанию
|
||||
`report.docx`). Путь считается от каталога `config.yaml` и может быть переопределён
|
||||
флагом `--output`.
|
||||
### Структура и оформление
|
||||
|
||||
### page
|
||||
`width`, `height` (DXA, 1/20 pt), `margins: {left,right,top,bottom}` (twips). A4 и поля СТО
|
||||
заданы по умолчанию.
|
||||
|
||||
### typography
|
||||
| Ключ | Смысл |
|
||||
|------|-------|
|
||||
| `font` | гарнитура (по умолчанию Times New Roman) |
|
||||
| `sizeBody` / `sizeTable` / `sizeSmall` | размеры в half-points (28 = 14 pt) |
|
||||
| `lineSpacing` | множитель межстрочного интервала (1.5 = полуторный) |
|
||||
| `color` | цвет текста (hex, без `#`) |
|
||||
| `useBold` | разрешить полужирный (СТО: `false`) |
|
||||
| `allowEmphasis` | разрешить курсив (СТО: `false`) |
|
||||
|
||||
### headings
|
||||
Интервалы/выравнивание для `struct`, `section`, `subsection`, `point` (twips).
|
||||
|
||||
### captions
|
||||
`figure`, `table`, `tableContinue` — префиксы и тире подписей (`Рисунок`, `Таблица`, `—`).
|
||||
|
||||
### lists
|
||||
`bulletChar`, `letterSuffix`, `numberSuffix`, `nestedLevelStep`, `forbiddenLetters`.
|
||||
|
||||
### numbering
|
||||
`figures`, `tables`, `formulas`: `global` (сквозная по документу) или `section` (в пределах
|
||||
раздела, вид `1.1`). Приложения всегда имеют префикс буквы (`А.1`).
|
||||
|
||||
### formula
|
||||
`spacingBeforeAfter`, `whereTabPosition`.
|
||||
|
||||
### table
|
||||
`font`, `size`, `borderColor`, `borderSize`, `cellMargins: {top,bottom,left,right}`,
|
||||
`headerFill`, `cellFill`.
|
||||
|
||||
### figure
|
||||
`maxWidth` (px; `null` — по ширине полосы), `maxHeight` (px).
|
||||
| Раздел | Назначение |
|
||||
|--------|-----------|
|
||||
| `page` | `width`, `height` (DXA), `margins` (twips) |
|
||||
| `typography` | `font`, `sizeBody`/`sizeTable`/`sizeSmall`, `lineSpacing`, `color`, `useBold`, `allowEmphasis`, `language` |
|
||||
| `headings` | интервалы/выравнивание `struct`, `section`, `subsection`, `point` |
|
||||
| `captions` | префиксы и тире подписей `figure`, `table`, `tableContinue` |
|
||||
| `lists` | `bulletChar`, `letterSuffix`, `numberSuffix`, `nestedLevelStep`, `forbiddenLetters` |
|
||||
| `numbering` | `figures`, `tables`, `formulas`: `global` или `section` |
|
||||
| `formula` | `spacingBeforeAfter`, `whereTabPosition` |
|
||||
| `table` | `font`, `size`, `borderColor`, `borderSize`, `cellMargins`, `headerFill`, `cellFill` |
|
||||
| `figure` | `maxWidth` (px, `null` — по ширине), `maxHeight` (px) |
|
||||
| `pageNumber` | `align`, `format`, `startFrom` |
|
||||
| `toc` | `enabled`, `title`, `depth` (1..3) |
|
||||
| `bibliography` | `title` |
|
||||
| `citation` | `bracketOpen`, `bracketClose`, `pagePrefix` |
|
||||
| `appendix` | `labelPrefix`, `forbiddenLetters` |
|
||||
|
||||
### plantuml
|
||||
Генерация рисунков из исходников PlantUML (см. п. 5, «Рисунки»).
|
||||
|
||||
| Ключ | Тип | Смысл |
|
||||
|------|-----|-------|
|
||||
| `enabled` | bool | включить рендеринг `.puml`; `false` — считать ошибкой при наличии `.puml` |
|
||||
| `java` | string | исполняемый файл Java; `auto` — `%JAVA_HOME%\bin\java`, иначе `java` из PATH |
|
||||
| `enabled` | bool | включить рендеринг `.puml`; `false` — считать ошибкой |
|
||||
| `java` | string | `auto` — `%JAVA_HOME%\bin\java`, иначе `java` из PATH |
|
||||
| `jar` | string | путь к `plantuml.jar` (относительно `config.yaml`) |
|
||||
| `format` | string | только `png` |
|
||||
| `charset` | string | кодировка исходника (по умолчанию `UTF-8`) |
|
||||
@@ -147,43 +125,31 @@ DocxGenerator [опции]
|
||||
| `cacheDir` | string | каталог кэша PNG (относительно `config.yaml`) |
|
||||
| `timeoutMs` | int | таймаут рендера одной диаграммы, мс |
|
||||
|
||||
Ошибки рендера (нет `jar`, нет Java, синтаксическая ошибка) — **фатальные**: сборка
|
||||
прекращается с кодом выхода `1`. Требуется установленная Java (JRE 11+) и файл
|
||||
`plantuml.jar`; для части типов диаграмм нужен Graphviz либо встроенный Smlayout.
|
||||
|
||||
### pageNumber
|
||||
`align`, `format`, `startFrom`.
|
||||
|
||||
### toc
|
||||
`enabled` (bool), `title`, `depth` (1..3). Оглавление вставляется записью
|
||||
`sections: [{ type: toc }]`.
|
||||
|
||||
### bibliography / citation / appendix
|
||||
`bibliography.title`, `citation: {bracketOpen,bracketClose,pagePrefix}`,
|
||||
`appendix: {labelPrefix, forbiddenLetters}`.
|
||||
Общий `plantuml.jar` репозитория лежит в `tools/plantuml.jar`; из проекта путь
|
||||
вида `../../../tools/plantuml.jar`. Ошибки рендера (нет `jar`, нет Java,
|
||||
синтаксическая ошибка) — фатальные: сборка останавливается с кодом `1`.
|
||||
|
||||
### sections — структура документа
|
||||
|
||||
Упорядоченный список частей:
|
||||
|
||||
```yaml
|
||||
sections:
|
||||
- { type: toc } # поле оглавления
|
||||
- { file: content/01-introduction.md, type: structural, title: Введение }
|
||||
- { file: content/02-main.md, type: numbered } # # = 1, ## = 1.1, ### = 1.1.1
|
||||
- { file: content/03-conclusion.md, type: structural, title: Заключение }
|
||||
- { file: content/04-bibliography.md, type: bibliography }
|
||||
- { file: content/05-appendix-a.md, type: appendix, letter: А, title: Приложение }
|
||||
- { type: toc } # поле оглавления
|
||||
- { file: 01-introduction.md, type: structural, title: Введение }
|
||||
- { file: 02-main.md, type: numbered } # # = 1, ## = 1.1, ### = 1.1.1
|
||||
- { file: 04-conclusion.md, type: structural, title: Заключение }
|
||||
- { file: 05-bibliography.md, type: bibliography }
|
||||
- { file: 06-appendix-a.md, type: appendix, letter: А, title: Приложение }
|
||||
```
|
||||
|
||||
Типы частей:
|
||||
|
||||
| type | Поведение |
|
||||
|------|-----------|
|
||||
| `toc` | вставляет оглавление (не требует `file`) |
|
||||
| `structural` | ненумерованный раздел (Введение/Заключение): заголовок = `title`, ЗАГЛАВНЫМИ, по центру, с новой страницы |
|
||||
| `numbered` | нумеруемый раздел; `#` = раздел, `##`/`###` = подраздел/пункт |
|
||||
| `bibliography` | список источников; нумеруется автоматически |
|
||||
| `appendix` | приложение: заголовок «ПРИЛОЖЕНИЕ <letter>» + `title`, нумерация рисунков/таблиц с префиксом буквы |
|
||||
| `appendix` | приложение: заголовок «ПРИЛОЖЕНИЕ <letter>» + `title`, буквенный префикс у рисунков/таблиц |
|
||||
|
||||
## 5. Формат контента
|
||||
|
||||
@@ -197,12 +163,12 @@ sections:
|
||||
### Пункт -> 1.1.1 Пункт
|
||||
```
|
||||
|
||||
Номера подставляются автоматически (Word-numbering). В `structural`/`appendix` заголовок
|
||||
берётся из конфига, а заголовки внутри файла рендерятся как обычные заголовки без номера.
|
||||
Номера подставляются автоматически (Word-numbering). В `structural`/`appendix`
|
||||
заголовок берётся из `title`, а заголовки внутри файла рендерятся без номера.
|
||||
|
||||
### Абзацы, списки
|
||||
### Абзацы и списки
|
||||
|
||||
Обычные абзацы и списки Markdown. Списки:
|
||||
Обычные абзацы и списки Markdown. Пример:
|
||||
|
||||
```md
|
||||
- первый пункт;
|
||||
@@ -211,8 +177,8 @@ sections:
|
||||
2. ещё один.
|
||||
```
|
||||
|
||||
Маркер вложенности выбирается автоматически: тире → `а)` → `1)`. Полужирный/курсив по
|
||||
умолчанию игнорируются (СТО).
|
||||
Маркер вложенности выбирается автоматически: тире → `а)` → `1)`. Полужирный и
|
||||
курсив по умолчанию игнорируются (СТО).
|
||||
|
||||
### Таблицы
|
||||
|
||||
@@ -237,13 +203,18 @@ sections:
|
||||
:::
|
||||
```
|
||||
|
||||
`file` — относительно `config.paths.assets`. Если файла нет — предупреждение, подпись
|
||||
всё равно выводится.
|
||||
`file` — относительно `paths.assets`. Если файла нет — предупреждение, подпись
|
||||
всё равно выводится. Подпись ставится под рисунком по центру:
|
||||
`Рисунок N — Наименование`. Если пояснять нечего, тело директивы оставляют
|
||||
пустым:
|
||||
|
||||
**PlantUML.** Если `file` оканчивается на `.puml` (`.plantuml`, `.pu`, `.iuml`), то файл
|
||||
считается исходником PlantUML: инструмент рендерит его в PNG через локальный
|
||||
`plantuml.jar` (см. `plantuml` в конфиге) и вставляет результат как обычный рисунок.
|
||||
Нумерация, ссылки `@fig:id` и примечания работают так же. Пример:
|
||||
```md
|
||||
::: figure "Общая схема системы" id=common file=images/common.png
|
||||
:::
|
||||
```
|
||||
|
||||
**PlantUML.** Если `file` оканчивается на `.puml` (`.plantuml`, `.pu`, `.iuml`),
|
||||
файл рендерится в PNG через `plantuml.jar` и вставляется как обычный рисунок:
|
||||
|
||||
```md
|
||||
::: figure "Диаграмма последовательности" id=seq file=images/seq.puml
|
||||
@@ -252,18 +223,7 @@ sections:
|
||||
:::
|
||||
```
|
||||
|
||||
Ошибка рендера — фатальная (код выхода `1`), `--check` тоже рендерит `.puml`.
|
||||
|
||||
**Подписи по СТО.** Подпись ставится **под** рисунком по центру: `Рисунок N — Наименование`
|
||||
(с прописной буквы, без точки в конце). Если на рисунке обозначены отдельные детали,
|
||||
пояснительные данные размещают **над подписью** и оформляют перечислением `а)`, `б)`, `в)` —
|
||||
именно так, как показано в примере выше. Если рисунок общий и пояснять нечего, указывают
|
||||
только подпись `Рисунок N — Наименование`, а тело директивы оставляют пустым:
|
||||
|
||||
```md
|
||||
::: figure "Общая схема системы" id=common file=images/common.png
|
||||
:::
|
||||
```
|
||||
Ошибка рендера фатальна, `--check` тоже рендерит `.puml`.
|
||||
|
||||
В приложениях номер рисунка получает префикс буквы: `Рисунок А.1 — Наименование`.
|
||||
|
||||
@@ -281,8 +241,8 @@ a — коэффициент.
|
||||
:::
|
||||
```
|
||||
|
||||
В формулах поддерживается простой синтаксис: `^` (степень), `_` (индекс), `/` (дробь).
|
||||
Номер формулы ставится автоматически справа.
|
||||
Поддерживается простой синтаксис: `^` (степень), `_` (индекс), `/` (дробь). Номер
|
||||
формулы ставится автоматически справа.
|
||||
|
||||
### Примечания и термины
|
||||
|
||||
@@ -313,56 +273,44 @@ a — коэффициент.
|
||||
|
||||
### Ссылки на источники
|
||||
|
||||
`[@1]` — ссылка на 1-й источник, `[@1, с. 96]` — с номером страницы. Список источников —
|
||||
это Markdown-список в файле `type: bibliography`; порядок строк = номера источников.
|
||||
`[@1]` — ссылка на 1-й источник, `[@1, с. 96]` — с номером страницы. Список
|
||||
источников — Markdown-список в файле `type: bibliography`; порядок строк = номера.
|
||||
Ссылка вне диапазона — ошибка в `--check`.
|
||||
|
||||
### Перекрёстные ссылки
|
||||
|
||||
`@fig:id`, `@tbl:id`, `@eq:id` подставляют актуальный номер рисунка/таблицы/формулы
|
||||
(например `2`, `1.1`, `А.1`). `id` задаётся в директиве.
|
||||
`@fig:id`, `@tbl:id`, `@eq:id` подставляют актуальный номер рисунка/таблицы/
|
||||
формулы (например `2`, `1.1`, `А.1`). `id` задаётся в директиве.
|
||||
|
||||
### Блоки кода
|
||||
|
||||
Функция листингов удалена: fenced-блоки ``` игнорируются с предупреждением.
|
||||
Fenced-блоки ``` игнорируются с предупреждением (функция листингов удалена).
|
||||
|
||||
## 6. Проверка и ошибки
|
||||
|
||||
`DocxGenerator --check` проверяет:
|
||||
`--check` проверяет:
|
||||
|
||||
- корректность `config.yaml` (типы, существование файлов, допустимые буквы приложений);
|
||||
- корректность `config.yaml` (типы, существование файлов, буквы приложений);
|
||||
- наличие всех `sections[].file`;
|
||||
- существование меток в `@fig/@tbl/@eq`;
|
||||
- диапазон ссылок `[@n]`;
|
||||
- рендеринг всех `::: figure ... file=*.puml` (PlantUML).
|
||||
- рендеринг всех `::: figure ... file=*.puml`.
|
||||
|
||||
Ошибки печатаются списком и возвращают код выхода `1`. Предупреждения (например,
|
||||
отсутствующий PNG) не останавливают сборку; ошибки PlantUML — фатальные.
|
||||
|
||||
## 7. Сборка `.exe` из исходников
|
||||
## 7. Подготовка диаграмм
|
||||
|
||||
```powershell
|
||||
npm install
|
||||
npm run build:exe # -> DocxGenerator.exe в корне (target node24-win-x64)
|
||||
npm run generate # локальная сборка (node src/cli.js)
|
||||
npm run check # проверка конфига и ссылок
|
||||
```
|
||||
|
||||
Упаковка выполняется через `@yao-pkg/pkg`. Чтобы уменьшить размер, можно добавить
|
||||
`--compress Brotli` в команду `build:exe`.
|
||||
|
||||
### Подготовка диаграмм
|
||||
|
||||
Готовые PNG кладутся в `content/assets/images/`. Для исходников PlantUML (`*.puml`)
|
||||
инструмент рендерит PNG сам: положите исходник в `content/assets/images/`, укажите его в
|
||||
`::: figure ... file=images/<имя>.puml` и поместите `plantuml.jar` в `tools/plantuml.jar`
|
||||
(или задайте путь в `plantuml.jar`). Диаграммы других форматов (Mermaid, draw.io) готовятся
|
||||
внешними средствами и вставляются как PNG.
|
||||
Готовые PNG кладутся в общий каталог ресурсов (`content/<проект>/assets/images/`).
|
||||
Исходники PlantUML (`.puml`) кладутся туда же и указываются в
|
||||
`::: figure ... file=images/<имя>.puml`. Диаграммы других форматов (Mermaid,
|
||||
draw.io) готовятся внешними средствами и вставляются как PNG.
|
||||
|
||||
## 8. Замечания по дизайну
|
||||
|
||||
- Дизайн фиксирован под СТО 02068410-004-2018; меняются только параметры из `config.yaml`.
|
||||
- Полужирный и курсив по умолчанию отключены (`typography.useBold`, `allowEmphasis`).
|
||||
- Шрифт, размеры, интервалы, отступы и подписи настраиваются в конфиге.
|
||||
- Оглавление — поле Word; при открытии нажмите «Обновить поле», либо включено
|
||||
- Дизайн фиксирован под СТО 02068410-004-2018; меняются только параметры из
|
||||
`config.yaml`.
|
||||
- Полужирный и курсив по умолчанию отключены (`typography.useBold`,
|
||||
`allowEmphasis`).
|
||||
- Оглавление — поле Word; при открытии нажмите «Обновить поле» либо включите
|
||||
`document.features.updateFields`.
|
||||
|
||||
Reference in New Issue
Block a user