docs(mxl): разделить справочник DSL и описать новые ключи

Справочник был одним файлом на 273 строки, а полная таблица свойств стиля его
бы удвоила. Разделён по частоте обращения, как в meta-compile: в инструкции
маршрутная таблица «что нужно → какой файл».

  reference/dsl-spec.md          — верхний уровень, области, строки, ячейки
  reference/styles.md            — шрифты, стили, цвет, рамка, колонки
  reference/format-properties.md — полный перечень свойств стиля

Описаны columnStyles и новая запись стиля: ключ = имя свойства как в выгрузке,
рамка пятью ключами, цвет в четырёх формах. Прежние align/valign/wrap работают
и дальше, но в описании их нет — иначе у модели появляется развилка.

Ограничения переписаны по факту: цвета, скрытие, отступ, посторонние рамки и
стили линий больше не теряются; зато честно названо то, что теряется до сих пор —
оформление строки помимо высоты.

Пример из спеки скомпилирован и проверен валидатором.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-11 17:14:31 +03:00
co-authored by Claude Opus 5
parent 3c7f7345bb
commit 08503c72e9
9 changed files with 466 additions and 120 deletions
+77
View File
@@ -0,0 +1,77 @@
# Полный список свойств стиля
Имя ключа совпадает с именем свойства в выгрузке — исключений нет. Частые свойства
с примерами — в `mxl-dsl-styles.md`, здесь полный перечень.
Тип значения:
- **число** — целое;
- **да/нет** — `true` / `false`;
- **перечисление** — одно из указанных, регистр не важен;
- **цвет** — `#RRGGBB`, `style:Имя`, `web:Имя`, `win:Имя`;
- **линия** — `"Solid"` либо `{ style, width }`;
- **текст** — строка (разворачивается на языки макета).
## Текст и выравнивание
| Ключ | Тип | Значение |
|------|-----|----------|
| `font` | имя | Ссылка на имя из `fonts` |
| `horizontalAlignment` | перечисление | `Left`, `Center`, `Right`, `Justify`, `Auto` |
| `verticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
| `textPlacement` | перечисление | `Wrap`, `Cut`, `Block`, `Auto` |
| `textOrientation` | число | Поворот в десятых долях градуса: `900` = 90° |
| `textColor` | цвет | Цвет текста |
| `indent` | число | Отступ текста |
| `autoIndent` | число | Автоматический отступ |
| `format` | текст | Формат данных: `"ЧЦ=15; ЧДЦ=2"` |
| `editFormat` | текст | Формат редактирования |
| `mask` | текст | Маска ввода |
| `markNegatives` | да/нет | Выделять отрицательные |
## Фон и рамка
| Ключ | Тип | Значение |
|------|-----|----------|
| `backColor` | цвет | Цвет фона |
| `pattern` | перечисление | `Solid`, `WithoutPattern`, `Pattern7`, `Pattern10`, `Pattern12`, `Pattern13`, `Pattern14`, `Pattern16` |
| `patternColor` | цвет | Цвет узора |
| `border` | линия | Все четыре стороны |
| `leftBorder`, `topBorder`, `rightBorder`, `bottomBorder` | линия | Отдельная сторона |
| `borderColor` | цвет | Цвет рамки |
## Поведение
| Ключ | Тип | Значение |
|------|-----|----------|
| `hidden` | да/нет | Скрыть |
| `protection` | да/нет | Защита от редактирования |
| `print` | да/нет | Выводить на печать |
| `hyperLink` | да/нет | Гиперссылка |
| `detailsUse` | перечисление | Использование расшифровки: `Cell`, `Row`, `WithoutProcessing` |
| `autoMarkIncomplete` | да/нет | Автоотметка незаполненного |
| `bySelectedColumns` | да/нет | По выделенным колонкам |
| `columnSizeChange` | перечисление | `Normal`, `QuickChange` |
| `autoWidthCalculation` | да/нет | Автоматический расчёт ширины |
| `widthWeightFactor` | число | Весовой коэффициент ширины |
## Картинка в ячейке
| Ключ | Тип | Значение |
|------|-----|----------|
| `picIndex` | число | Номер картинки |
| `pictureSizeMode` | перечисление | `AutoSize`, `Proportionally`, `RealSize` |
| `picHorizontalAlignment` | перечисление | `Auto`, `Center`, `Left`, `Right` |
| `picVerticalAlignment` | перечисление | `Top`, `Center`, `Bottom` |
| `textPosition` | перечисление | Положение текста относительно картинки: `Auto`, `Top`, `Right`, `Bottom` |
| `drawingBorder` | число | Рамка рисунка |
| `drawingHaveLeftBorder`, `drawingHaveTopBorder`, `drawingHaveRightBorder`, `drawingHaveBottomBorder` | да/нет | Наличие стороны рамки рисунка |
## Чего в стиле нет
- `width` — свойство колонки, задаётся через `columnWidths`;
- `height` — свойство строки, задаётся ключом `height` у строки;
- `fillType` — выводится из того, каким ключом задано содержимое ячейки
(`text` / `param` / `template`);
- `containsValue`, `valueType`, `controlType` — свойства конкретной ячейки, а не общего
оформления; сейчас не поддерживаются.