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.
142 lines
5.4 KiB
Markdown
142 lines
5.4 KiB
Markdown
---
|
||
title: Просмотр документов
|
||
description: Дерево объектов, поиск по имени и типу и просмотр свойств из терминала.
|
||
---
|
||
|
||
# Просмотр документов
|
||
|
||
CLI позволяет изучать документы дизайна без запуска редактора. Те же команды работают с открытым настольным приложением, если не указывать файл.
|
||
|
||
::: tip Установка
|
||
|
||
```sh
|
||
npm install -g @open-pencil/cli
|
||
# или
|
||
bun add -g @open-pencil/cli
|
||
```
|
||
|
||
:::
|
||
|
||
## Общие сведения
|
||
|
||
Количество страниц и объектов, используемые шрифты и размер файла:
|
||
|
||
```sh
|
||
openpencil info design.fig
|
||
```
|
||
|
||
## Дерево объектов
|
||
|
||
```sh
|
||
openpencil tree design.fig
|
||
```
|
||
|
||
## Поиск объектов
|
||
|
||
По типу:
|
||
|
||
```sh
|
||
openpencil find design.fig --type TEXT
|
||
```
|
||
|
||
По имени:
|
||
|
||
```sh
|
||
openpencil find design.fig --name "Button"
|
||
```
|
||
|
||
Параметры можно использовать одновременно.
|
||
|
||
## Запросы XPath
|
||
|
||
Селекторы XPath находят объекты по типу, атрибутам и положению в дереве:
|
||
|
||
```sh
|
||
openpencil query design.fig "//FRAME"
|
||
```
|
||
|
||
### По типу
|
||
|
||
```sh
|
||
openpencil query design.fig "//TEXT" # Все текстовые объекты
|
||
openpencil query design.fig "//COMPONENT" # Все компоненты
|
||
openpencil query design.fig "//INSTANCE" # Все экземпляры
|
||
```
|
||
|
||
### По атрибутам
|
||
|
||
```sh
|
||
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]" # Объекты с неполной прозрачностью
|
||
```
|
||
|
||
### По имени и содержимому
|
||
|
||
```sh
|
||
openpencil query design.fig "//TEXT[contains(@name, 'Button')]"
|
||
openpencil query design.fig "//TEXT[contains(@text, 'Hello')]"
|
||
```
|
||
|
||
### По иерархии
|
||
|
||
```sh
|
||
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`
|
||
|
||
## Свойства объекта
|
||
|
||
```sh
|
||
openpencil node design.fig --id 1:23
|
||
```
|
||
|
||
## Страницы и переменные
|
||
|
||
```sh
|
||
openpencil pages design.fig
|
||
openpencil variables design.fig
|
||
```
|
||
|
||
## Работа с открытым приложением
|
||
|
||
Если настольное приложение запущено, не указывайте путь к файлу. CLI подключится по RPC к открытому документу:
|
||
|
||
```sh
|
||
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](/programmable/cli/app-control).
|
||
|
||
## Проверка качества
|
||
|
||
Проверка имён, компоновки, структуры и доступности:
|
||
|
||
```sh
|
||
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 или другой программе:
|
||
|
||
```sh
|
||
openpencil tree design.fig --json | jq '.[] | .name'
|
||
```
|