mcpField
M
mxl-decompile

mxl-decompile

github.com/nikolay-shirokovドキュメント74153 回インストール今日更新
リポジトリ

mxl-decompile について

mxl-decompileは、1Cの表計算ドキュメントにあるTemplate.xmlを、mxl-compileが使う簡潔なJSON DSLに変換します。既存レイアウトの確認や編集に使えますが、一部のXML情報は往復変換で保持されません。

主な機能

  1. 01Template.xmlをJSON DSLに変換
  2. 02ファイルまたは標準出力への出力
  3. 03コンパイラー固有のDSLキーを保持
  4. 04レイアウトの確認と編集

活用シーン

  1. 01既存の1C表計算レイアウトの確認
  2. 02JSONでレイアウト構造やスタイルを編集
  3. 03デコンパイル後のレイアウト再生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nikolay-shirokov/cc-1c-skills --skill mxl-decompile

インストール後、Claude Code で/mxl-decompileを入力して読み込まれたか確認します。

同梱ファイルscripts/mxl-decompile.ps1scripts/mxl-decompile.py

README(原文)English

プロジェクトの README より

この README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。

/mxl-decompile — Декомпилятор макета в DSL

Принимает Template.xml табличного документа 1С и генерирует компактное JSON-определение (DSL). Обратная операция к /mxl-compile.

Использование

/mxl-decompile <TemplatePath> [OutputPath]

Параметры

ПараметрОбязательныйОписание
TemplatePathдаПуть к Template.xml
OutputPathнетПуть для JSON (если не указан — stdout)

Команда

powershell.exe -NoProfile -File "${CLAUDE_SKILL_DIR}/scripts/mxl-decompile.ps1" -TemplatePath "<путь>/Template.xml" [-OutputPath "<путь>.json"]

Рабочий процесс

Декомпиляция существующего макета для анализа или доработки:

  1. Вызвать /mxl-decompile для получения JSON из Template.xml
  2. Проанализировать или изменить JSON (добавить области, поменять стили)
  3. Вызвать /mxl-compile для генерации нового Template.xml
  4. Вызвать /mxl-validate для проверки

Формат JSON на выходе — тот же DSL, что принимает /mxl-compile; его описание живёт в навыке /mxl-compile.

Ключи, которых нет в описании DSL

В разобранном макете попадаются ключи, которых нет в инструкции /mxl-compile: например, у rowStyle — модификатор apply, у ячейки-поля ввода — controlType: "none". Они несут состояние исходного файла, которое иначе не выразить. Писать их самому не нужно; удалять из разобранного JSON — тоже: компилятор принимает их обратно как есть, а без них макет изменится.

Что нужно знать о пересборке

Правка через DSL — это полная перегенерация макета, а не точечное изменение XML. Поэтому diff после цикла «декомпиляция → компиляция» обычно шире фактической доработки, даже когда содержание сохранено целиком.

Побайтового совпадения с исходником ждать не всегда стоит. В макетах, которые долго правили в Конфигураторе, остаются следы прежних состояний: например, формат ячейки несёт ширину колонки, которая с тех пор изменилась. Из итогового документа такие значения не выводятся, и в пересобранный файл они не возвращаются.

Не переживают цикл вовсе (в JSON не попадают, в XML не возвращаются):

  • объединения, не привязанные к ячейке — по всей высоте или ширине документа;
  • настройки диаграмм (Chart, GanttChart) — сам рисунок сохраняется, его содержимое нет;
  • область печати.

Если задача — сохранить чужой макет как есть и поправить в нём малое, сверяйте результат /mxl-info или diff-ом: перечисленное выше нужно вернуть руками.

コメント