From 13d100dff8d7dc9851c58120c651e74a27c07364 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 17 Aug 2026 12:56:05 +0300 Subject: [PATCH] =?UTF-8?q?docs(mxl-compile):=20=D0=BF=D0=BE=D0=B7=D0=B8?= =?UTF-8?q?=D1=86=D0=B8=D0=BE=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=81=D0=BF=D0=B8?= =?UTF-8?q?=D1=81=D0=BE=D0=BA=20=D1=8F=D1=87=D0=B5=D0=B5=D0=BA=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=B5=D1=82=20=D0=B8=20=D1=81=20?= =?UTF-8?q?rowStyle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Утверждение «короткой формой не задать height и rowStyle» неверно: проверено компилятором, позиционный список кладётся в cells и уживается со свойствами строки, включая маркеры > и |. Это форма записи ЯЧЕЕК, а не строки — так и сформулировано теперь в инструкции и спецификации. Строка итога в примере переписана короче, заодно показывает эту форму. --- .claude/skills/mxl-compile/SKILL.md | 15 +++++++++++---- docs/mxl-dsl-spec.md | 15 ++++++++++----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/.claude/skills/mxl-compile/SKILL.md b/.claude/skills/mxl-compile/SKILL.md index 2dc8ed5e..d8f4e4a0 100644 --- a/.claude/skills/mxl-compile/SKILL.md +++ b/.claude/skills/mxl-compile/SKILL.md @@ -90,13 +90,13 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J ]} ]}, { "name": "Итого", "rows": [ - [null, null, null, { "style": "итог", "text": "Итого:" }, { "style": "итог", "param": "Всего" }] + { "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] } ]} ] } ``` -Область «Итого» записана короткой формой: позиция берётся из порядка, `col` не нужен. +Список ячеек в области «Итого» записан позиционно: позиция берётся из порядка, `col` не нужен. ## Структура DSL @@ -152,7 +152,7 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J пустая (нужна, например, ради рамки). Пустая строка `"text": ""` — это тоже текст, а не отсутствие текста. -### Короткая форма: строка массивом +### Короткая форма: список ячеек позиционно Позиция берётся из порядка, `col` не нужен: @@ -175,7 +175,14 @@ powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-compile.ps1" -J ``` Здесь «Вид» и «Итог» объединены по вертикали, «Остаток» — по горизонтали на две колонки. -Короткой формой не задать `height` и `rowStyle` — это свойства строки. + +Позиционный список — это форма записи ЯЧЕЕК, а не строки. Если у строки нет своих свойств, он +и есть строка (как в примере выше). Если нужны `height`, `hidden` или `rowStyle` — тот же +список кладётся в `cells`: + +```json +{ "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] } +``` ### `rowStyle` — оформление строки diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index b8608cfd..71d6cd18 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -141,9 +141,11 @@ `height` и `hidden` — собственные свойства строки: у ячейки таких нет, и в её оформление они не попадают. Всё остальное оформление строки задаётся через `rowStyle`. -### Короткая форма: строка массивом +### Короткая форма: список ячеек позиционно -Вместо объекта строка может быть массивом ячеек — позиция определяется порядком, `col` не указывается. +Список ячеек можно записывать позиционно — позиция определяется порядком, `col` не указывается. +Если у строки нет своих свойств, такой список и есть строка; если нужны `height`, `hidden` +или `rowStyle` — тот же список кладётся в `cells`. | Элемент | Значение | |---------|----------| @@ -170,9 +172,12 @@ ``` Здесь «Вид» и «Итог» объединены по вертикали на две строки, «Остаток» — по горизонтали на две колонки. -Ограничения короткой формы: -- не задать `height` и `rowStyle` — это свойства строки, а не ячейки; -- не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном `"{...}"`. +```json +{ "rowStyle": "итог", "cells": [null, null, null, "Итого:", "{Всего}"] } +``` + +Ограничение у формы одно: ею не выразить текст, совпадающий с `">"`, `"|"` или с шаблоном +`"{...}"` — такие ячейки записываются объектом с ключом `text`. Маркеру нужно, что продолжать: `">"` требует ячейку слева в той же строке, `"|"` — ячейку сверху. Объектный элемент не должен нести `col`: позиция уже задана порядком. Число элементов не может превышать `columns`. Нарушение любого из этих правил → ненулевой код выхода и сообщение в stderr.