| 1 | # Сборка ADR (как `resume/`) |
| 2 | |
| 3 | Скрипт [`../build-adr.csx`](../build-adr.csx) склеивает нумерованные ADR (`NNNN-*.md`) и гоняет **Pandoc** → HTML, TXT, PDF (без **DOCX**). |
| 4 | |
| 5 | ## Зависимости |
| 6 | |
| 7 | - [dotnet-script](https://github.com/dotnet-script/dotnet-script): `dotnet tool install -g dotnet-script` |
| 8 | - [Pandoc](https://pandoc.org/): `winget install JohnMacFarlane.Pandoc` |
| 9 | - PDF без LaTeX: Microsoft Edge (headless print-to-pdf), как в `resume/build-resume.csx` |
| 10 | |
| 11 | ## Запуск |
| 12 | |
| 13 | Из каталога `docs/adr` (корень ADR): |
| 14 | |
| 15 | ```bash |
| 16 | dotnet script build-adr.csx |
| 17 | ``` |
| 18 | |
| 19 | Иначе: |
| 20 | |
| 21 | ```bash |
| 22 | dotnet script build-adr.csx --root "D:\path\to\cascade-ide\docs\adr" |
| 23 | ``` |
| 24 | |
| 25 | **Тематическая сборка UI-ADR** (отдельный корень и имена артефактов): |
| 26 | |
| 27 | ```bash |
| 28 | dotnet script build-adr.csx --book adr-book-ui.md |
| 29 | ``` |
| 30 | |
| 31 | Корневой файл [`../adr-book-ui.md`](../adr-book-ui.md) тянет [`../UI/ui-adr-manifest.txt`](../UI/ui-adr-manifest.txt); карта смыслов — [`../UI/principles.md`](../UI/principles.md). |
| 32 | |
| 33 | **Тематическая сборка TECH-ADR:** |
| 34 | |
| 35 | ```bash |
| 36 | dotnet script build-adr.csx --book adr-book-tech.md |
| 37 | ``` |
| 38 | |
| 39 | Корневой файл [`../adr-book-tech.md`](../adr-book-tech.md) тянет [`../TECH/tech-adr-manifest.txt`](../TECH/tech-adr-manifest.txt); карта смыслов — [`../TECH/principles.md`](../TECH/principles.md). |
| 40 | |
| 41 | ## Режимы |
| 42 | |
| 43 | 1. **По умолчанию** — все файлы `NNNN-*.md` в `docs/adr` по имени, между ними разделитель `---`; сверху YAML-шапка со датой сборки. |
| 44 | 2. **Свой порядок и преамбула** — положи `adr-book.md` в `docs/adr` (YAML + директивы `{{ INCLUDE: ... }}` / `INCLUDE_MANIFEST` / `INCLUDE_GLOB`), как `resume.md` в репо резюме. |
| 45 | 3. **`--book <файл.md>`** — другой корень (например `adr-book-ui.md`); выход: `build/<stem>.md`, `out/html/<stem>.html` и т.д. |
| 46 | |
| 47 | Общие фрагменты — каталог [`snippets/`](../snippets/README.md) (пример пути в INCLUDE: `snippets/foo.md`). |
| 48 | |
| 49 | **Fenced-блоки** (` ``` ` … ` ``` `): директивы INCLUDE **внутри** таких блоков не обрабатываются (чтобы литературные примеры в ADR, напр. [0023](../0023-markdown-diagrams-language-tooling.md), не требовали фиктивных файлов). |
| 50 | |
| 51 | ## Выход |
| 52 | |
| 53 | | Путь | Содержимое | |
| 54 | |------|------------| |
| 55 | | `build/<stem>.md` | Развёрнутый Markdown после INCLUDE (`<stem>` — имя без `.md` у `--book` или `adr-book`) | |
| 56 | | `out/html/<stem>.html` | + `adr.css` | |
| 57 | | `out/txt/<stem>.txt` | plain | |
| 58 | | `out/pdf/<stem>.pdf` | Edge или xelatex | |
| 59 | |
| 60 | Каталоги `build/` и `out/` в `.gitignore`. |
| 61 | |