Eleven translated pages changed in English since the last release without matching updates: system requirements, the Lint tab, AI chat diff tools, collaboration with agents, design JSX imports and export fidelity, Storybook and live-app export, lint fixes, page navigation, and Checking Designs. Bring de, es, fr, it, pl, and ru up to date, add the sections the abridged translations lacked where a change landed, use each language's UI labels, and point the export page at documents list.
5.4 KiB
| title | description |
|---|---|
| Просмотр документов | Дерево объектов, поиск по имени и типу и просмотр свойств из терминала. |
Просмотр документов
CLI позволяет изучать документы дизайна без запуска редактора. Те же команды работают с открытым настольным приложением, если не указывать файл.
::: tip Установка
npm install -g @open-pencil/cli
# или
bun add -g @open-pencil/cli
:::
Общие сведения
Количество страниц и объектов, используемые шрифты и размер файла:
openpencil info design.fig
Дерево объектов
openpencil tree design.fig
Поиск объектов
По типу:
openpencil find design.fig --type TEXT
По имени:
openpencil find design.fig --name "Button"
Параметры можно использовать одновременно.
Запросы XPath
Селекторы XPath находят объекты по типу, атрибутам и положению в дереве:
openpencil query design.fig "//FRAME"
По типу
openpencil query design.fig "//TEXT" # Все текстовые объекты
openpencil query design.fig "//COMPONENT" # Все компоненты
openpencil query design.fig "//INSTANCE" # Все экземпляры
По атрибутам
openpencil query design.fig "//FRAME[@width < 300]" # Фреймы уже 300 пикселей
openpencil query design.fig "//*[@cornerRadius > 0]" # Объекты со скруглёнными углами
openpencil query design.fig "//*[@visible = false]" # Скрытые объекты
openpencil query design.fig "//TEXT[@fontSize >= 24]" # Крупный текст
openpencil query design.fig "//*[@opacity < 1]" # Объекты с неполной прозрачностью
По имени и содержимому
openpencil query design.fig "//TEXT[contains(@name, 'Button')]"
openpencil query design.fig "//TEXT[contains(@text, 'Hello')]"
По иерархии
openpencil query design.fig "//SECTION//TEXT" # Текст внутри секций
openpencil query design.fig "//FRAME/TEXT" # Непосредственные текстовые потомки фреймов
openpencil query design.fig "//COMPONENT_SET//INSTANCE" # Экземпляры внутри наборов компонентов
Доступные атрибуты
name, width, height, x, y, visible, opacity, cornerRadius, fontSize, fontFamily, fontWeight, layoutMode, itemSpacing, paddingTop, paddingRight, paddingBottom, paddingLeft, strokeWeight, rotation, locked, blendMode, text, lineHeight, letterSpacing
Свойства объекта
openpencil node design.fig --id 1:23
Страницы и переменные
openpencil pages design.fig
openpencil variables design.fig
Работа с открытым приложением
Если настольное приложение запущено, не указывайте путь к файлу. CLI подключится по RPC к открытому документу:
openpencil documents list
openpencil tree
openpencil tree --document-id tab-123 --page-id 0:1
openpencil eval --document-id tab-123 --page-id 0:1 -c "..."
Для автоматизированных процессов сначала вызовите openpencil documents list --json, а затем явно передавайте --document-id и --page-id, не полагаясь на видимую активную вкладку или страницу. Как открывать, сохранять, переключать и закрывать документы, отменять изменения, менять настройки и вызывать любые инструменты редактора, описано в Controlling the App.
Проверка качества
Проверка имён, компоновки, структуры и доступности:
openpencil lint design.fig
openpencil lint design.pen --preset strict
openpencil lint design.fig --rule color-contrast
openpencil lint design.fig --list-rules
openpencil lint design.fig --fix -o fixed.fig
Добавьте --json, если результат будет обрабатывать другая программа: каждое сообщение содержит fix и suggestions в виде данных. --fix применяет безопасные исправления — привязывает цвета к подходящим переменным цвета и округляет геометрию до целых пикселей — и записывает результат в файл .fig, указанный в -o.
Вывод JSON
Все команды поддерживают --json. Результат можно передать jq, проверке CI или другой программе:
openpencil tree design.fig --json | jq '.[] | .name'