mcpField
M
mxl-decompile

mxl-decompile

github.com/nikolay-shirokov文档处理74153 次安装今天更新
代码仓库

关于 mxl-decompile

mxl-decompile 将 1C 表格文档的 Template.xml 转换为 mxl-compile 使用的精简 JSON DSL,适合检查或修改现有版式后重新生成。部分 XML 细节无法在往返转换中保留。

主要功能

  1. 01将 Template.xml 转为 JSON DSL
  2. 02输出到文件或标准输出
  3. 03保留编译器专用 DSL 键
  4. 04便于检查和修改版式

适用场景

  1. 01检查现有 1C 表格版式
  2. 02在 JSON 中修改版式结构或样式
  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-ом: перечисленное выше нужно вернуть руками.

评论

支持 Markdown