Forge
markdowndeeb25a2
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
16dotnet script build-adr.csx
17```
18
19Иначе:
20
21```bash
22dotnet script build-adr.csx --root "D:\path\to\cascade-ide\docs\adr"
23```
24
25**Тематическая сборка UI-ADR** (отдельный корень и имена артефактов):
26
27```bash
28dotnet 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
36dotnet 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
431. **По умолчанию** — все файлы `NNNN-*.md` в `docs/adr` по имени, между ними разделитель `---`; сверху YAML-шапка со датой сборки.
442. **Свой порядок и преамбула** — положи `adr-book.md` в `docs/adr` (YAML + директивы `{{ INCLUDE: ... }}` / `INCLUDE_MANIFEST` / `INCLUDE_GLOB`), как `resume.md` в репо резюме.
453. **`--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
View only · write via MCP/CIDE