* fix: use official Homebrew cask installation guidance * docs: guide localized pages through the old Homebrew tap The translated getting-started pages documented the official cask but not the migration from the archived tap, so readers of those pages had no uninstall step for the old formula.
141 lines
4.6 KiB
Markdown
141 lines
4.6 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
|
||
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 --json`, а затем явно передавайте `--document-id` и `--page-id`, не полагаясь на видимую активную вкладку или страницу.
|
||
|
||
## Проверка качества
|
||
|
||
Проверка имён, компоновки, структуры и доступности:
|
||
|
||
```sh
|
||
openpencil lint design.fig
|
||
openpencil lint design.pen --preset strict
|
||
openpencil lint design.fig --rule color-contrast
|
||
openpencil lint design.fig --list-rules
|
||
```
|
||
|
||
Добавьте `--json`, если результат будет обрабатывать другая программа.
|
||
|
||
## Вывод JSON
|
||
|
||
Все команды поддерживают `--json`. Результат можно передать `jq`, проверке CI или другой программе:
|
||
|
||
```sh
|
||
openpencil tree design.fig --json | jq '.[] | .name'
|
||
```
|