From e46db618e3ec15d530eaf9c013f8d6b9c827713a Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Tue, 11 Aug 2026 21:16:17 +0300 Subject: [PATCH] =?UTF-8?q?docs(mxl):=20=D1=83=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C,=20=D0=BA=D0=B0=D0=BA=20=D1=87=D0=B8=D1=82?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA?= =?UTF-8?q?=D1=82=20=D0=B2=20=D0=BF=D0=BE=D0=B7=D0=B8=D1=86=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8?= =?UTF-8?q?=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Прежняя формулировка противопоставляла «ячейку» и «многоязычный текст», хотя текст тоже даёт ячейку. Разница не в этом: объект либо описывает СВОЙСТВА ячейки (среди ключей есть ключ её схемы), либо является её ЗНАЧЕНИЕМ, и тогда ключи — идентификаторы языков. Co-Authored-By: Claude Opus 5 (1M context) --- .claude/skills/mxl-compile/reference/dsl-spec.md | 5 +++-- .claude/skills/mxl-compile/scripts/mxl-compile.ps1 | 5 +++-- .claude/skills/mxl-compile/scripts/mxl-compile.py | 6 +++--- docs/mxl-dsl-spec.md | 5 +++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/.claude/skills/mxl-compile/reference/dsl-spec.md b/.claude/skills/mxl-compile/reference/dsl-spec.md index bbdcd532..670fe81f 100644 --- a/.claude/skills/mxl-compile/reference/dsl-spec.md +++ b/.claude/skills/mxl-compile/reference/dsl-spec.md @@ -151,8 +151,9 @@ | `null` | Пустая колонка: позиция занята, ячейка не создаётся | | `{ ... }` | Обычная ячейка **без** `col`; нужна для `style`, `detail`, `template` | -Объект-элемент читается как ячейка, если несёт хоть один её ключ (`span`, `rowspan`, `style`, -`param`, `detail`, `text`, `template`), и как многоязычный текст в противном случае. +Объект-элемент трактуется по его ключам: если среди них есть ключ ячейки (`span`, `rowspan`, +`style`, `param`, `detail`, `text`, `template`) — объект описывает свойства ячейки. Иначе он +целиком считается её текстом, а его ключи — идентификаторами языков. ```json "rows": [ diff --git a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 index 59502281..b0bd544d 100644 --- a/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 +++ b/.claude/skills/mxl-compile/scripts/mxl-compile.ps1 @@ -845,8 +845,9 @@ function Set-CellProp { $cell | Add-Member -NotePropertyName $name -NotePropertyValue $value -Force } -# Ячейка это или многоязычный текст: у ячейки есть хоть один ключ её схемы, у ML-значения -# ключи — идентификаторы языков. Пересечений нет: в корпусе это ru, en, ru1, Русский. +# Объект описывает СВОЙСТВА ячейки или является её ЗНАЧЕНИЕМ: в первом случае среди ключей +# есть ключ схемы ячейки, во втором ключи — идентификаторы языков. Пересечений нет: в корпусе +# это ru, en, ru1, Русский. function Test-CellObject { param($el) $cellKeys = @('col', 'span', 'rowspan', 'style', 'param', 'detail', 'text', 'template') diff --git a/.claude/skills/mxl-compile/scripts/mxl-compile.py b/.claude/skills/mxl-compile/scripts/mxl-compile.py index 7ecda00a..94bca504 100644 --- a/.claude/skills/mxl-compile/scripts/mxl-compile.py +++ b/.claude/skills/mxl-compile/scripts/mxl-compile.py @@ -885,9 +885,9 @@ def main(): # поэтому весь код ниже про шорткат не знает. def is_cell_object(el): - """Ячейка это или многоязычный текст: у ячейки есть хоть один ключ её схемы, - у ML-значения ключи — идентификаторы языков. Пересечений нет: в корпусе это - ru, en, ru1, Русский.""" + """Объект описывает СВОЙСТВА ячейки или является её ЗНАЧЕНИЕМ: в первом случае среди + ключей есть ключ схемы ячейки, во втором ключи — идентификаторы языков. Пересечений + нет: в корпусе это ru, en, ru1, Русский.""" cell_keys = ('col', 'span', 'rowspan', 'style', 'param', 'detail', 'text', 'template') return any(k in el for k in cell_keys) diff --git a/docs/mxl-dsl-spec.md b/docs/mxl-dsl-spec.md index 91ca984e..00142e3e 100644 --- a/docs/mxl-dsl-spec.md +++ b/docs/mxl-dsl-spec.md @@ -151,8 +151,9 @@ | `null` | Пустая колонка: позиция занята, ячейка не создаётся | | `{ ... }` | Обычная ячейка **без** `col`; нужна для `style`, `detail`, `template` | -Объект-элемент читается как ячейка, если несёт хоть один её ключ (`span`, `rowspan`, `style`, -`param`, `detail`, `text`, `template`), и как многоязычный текст в противном случае. +Объект-элемент трактуется по его ключам: если среди них есть ключ ячейки (`span`, `rowspan`, +`style`, `param`, `detail`, `text`, `template`) — объект описывает свойства ячейки. Иначе он +целиком считается её текстом, а его ключи — идентификаторами языков. ```json "rows": [