Просмотр документов
CLI позволяет изучать документы дизайна без запуска редактора. Те же команды работают с открытым настольным приложением, если не указывать файл.
Установка
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'