* docs: polish localized documentation - Rewrite Russian documentation for natural terminology and current source parity\n- Continue the Polish editorial pass across guides and SDK references\n- Refresh shared localized SDK API data imports * docs(pl): complete editorial pass - Rewrite the remaining advanced Vue SDK references\n- Refresh the Figma compatibility matrix against the canonical source\n- Align terminology and behavior across every Polish documentation page * docs(de): complete editorial pass - Rewrite German guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs(es): complete editorial pass - Rewrite Spanish guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs(fr): complete editorial pass - Rewrite French guides, automation docs, and Vue SDK references\n- Restore current AI, export, component, and variable behavior\n- Refresh the Penpot comparison and Figma compatibility matrix * docs: correct localized terminology - Replace unnecessary English prose with natural localized terminology\n- Derive documentation aliases from named directory roots\n- Preserve English only for identifiers, APIs, and exact product terms * docs(it): continue editorial pass - Rewrite Italian user guides and automation documentation\n- Update Vue SDK composables and component references\n- Restore current AI, export, component, and variable behavior * docs(it): complete editorial pass - Finish Italian advanced SDK and reference documentation\n- Refresh the Penpot comparison and Figma compatibility matrix\n- Replace literal machine translations with natural technical prose * docs(pl): refine property panel terminology * docs: refine remaining localized prose - Replace overfitted English prose in Polish feature documentation\n- Rewrite the Russian property-list reference in natural terminology * docs(ru): rewrite Penpot comparison naturally - Replace remaining English prose with natural Russian\n- Preserve code identifiers and library names only where required * docs: rewrite localized feature overviews naturally - Replace avoidable English prose in German, Spanish, and French\n- Keep identifiers and product names unchanged * docs(de): refine property panel terminology * docs: refine Spanish and French SDK terminology * docs(ru): continue full prose audit - Rewrite homepage, setup, navigation, and guide index naturally\n- Restore missing zoom shortcuts * docs(ru): audit user and automation guides - Rewrite selection, collaboration, and automation prose naturally\n- Preserve API identifiers while localizing ordinary terminology * docs(ru): audit CLI inspection and analysis * docs(ru): audit Vue SDK overview and guides * docs(ru): audit Vue SDK API prose - Localize ordinary component and composable terminology\n- Preserve API symbols and code identifiers * docs(ru): audit advanced and gradient API references * docs(ru): finish advanced API prose audit * docs(ru): audit JSX renderer guide * docs(ru): audit CLI export and scripting guides * docs(pl): audit Penpot comparison prose * docs(pl): audit selection and automation guides * docs(pl): audit homepage and variable guides * docs(pl): audit vector, layers, and Pen guides * docs(pl): audit Auto layout and shape guides * docs(pl): audit context menu and export guides * docs(pl): audit JSX and analysis guides * docs(pl): audit AI Chat guide * docs(pl): audit components and CLI inspection * docs(pl): audit scripting and SDK overview prose * docs(pl): audit SDK API indexes * docs(pl): audit SDK component references * docs(pl): audit SDK composable references * docs(ru): refine usePosition terminology * docs(pl): audit advanced SDK references * docs(pl): audit Figma compatibility matrix * docs(pl): finish residual SDK terminology audit * docs(pl): finish component terminology audit * docs(pl): finish SDK guide terminology audit * docs(de): begin full user guide prose audit * docs(de): audit navigation, Pen, and layers guides * docs(de): audit Auto Layout, shapes, menu, and export * docs(de): audit components, text, and vector guides * docs(de): audit variables and automation overview * docs(de): audit AI Chat and collaboration guides * docs(de): audit CLI inspection, analysis, and export * docs(de): audit scripting and JSX guides * docs(de): audit Vue SDK overview and guides * docs(de): audit SDK API indexes * docs(de): audit SDK component references * docs(de): audit SDK composable references * docs(de): audit advanced SDK references * docs(de): audit Penpot comparison prose * docs(de): audit Figma compatibility reference * docs(es): begin full user guide prose audit * docs(es): audit document organization guides * docs(es): audit editing workflow guides * docs(es): audit automation and collaboration prose * docs(es): audit CLI inspection and export guides * docs(es): audit CLI scripting guide * docs(es): audit JSX and feature overview prose * docs(es): audit Penpot comparison prose * docs(es): audit SDK overview and guides * docs(es): begin SDK component reference audit * docs(es): audit SDK navigation component references * docs(es): audit SDK color and layout components * docs(es): begin SDK composable reference audit * docs(es): audit SDK property composable references * docs(es): audit SDK editor composable references * docs(es): begin advanced SDK reference audit * docs(es): audit advanced SDK state references * docs(es): complete advanced SDK reference audit * docs(es): audit Figma compatibility reference * docs(es): complete residual terminology sweep * docs(fr): begin full prose second audit * docs(fr): audit AI and variables prose * docs(fr): audit core user guide prose * docs(fr): audit editing workflow guides * docs(fr): audit CLI and JSX prose * docs(fr): audit Penpot comparison prose * docs(fr): audit SDK overview and guides * docs(fr): begin SDK API reference audit * docs(fr): audit SDK navigation component references * docs(fr): audit SDK color and layout components * docs(fr): begin SDK composable reference audit * docs(fr): audit SDK property composable references * docs(fr): audit editor composables and advanced APIs * docs(fr): audit advanced SDK state references * docs(fr): complete advanced SDK reference audit * docs(fr): audit Figma compatibility reference * docs(fr): complete residual terminology sweep * docs(it): begin full prose second audit * docs(it): audit document workflow guides * docs(it): audit editing and automation prose * docs(it): audit CLI and JSX prose * docs(it): audit Penpot comparison and SDK guides * docs(it): begin SDK API reference audit * docs(it): audit SDK component and state references * docs(it): audit residual SDK references * docs(it): audit Figma compatibility reference * docs(it): complete residual terminology sweep * docs(i18n): verify residual locale terminology
141 lines
4.7 KiB
Markdown
141 lines
4.7 KiB
Markdown
---
|
||
title: Просмотр документов
|
||
description: Дерево объектов, поиск по имени и типу и просмотр свойств из терминала.
|
||
---
|
||
|
||
# Просмотр документов
|
||
|
||
CLI позволяет изучать документы дизайна без запуска редактора. Те же команды работают с открытым настольным приложением, если не указывать файл.
|
||
|
||
::: tip Установка
|
||
```sh
|
||
npm install -g @open-pencil/cli
|
||
# или
|
||
bun add -g @open-pencil/cli
|
||
# или
|
||
brew install open-pencil/tap/open-pencil
|
||
```
|
||
:::
|
||
|
||
## Общие сведения
|
||
|
||
Количество страниц и объектов, используемые шрифты и размер файла:
|
||
|
||
```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'
|
||
```
|