openpencil/apps/cli/README.ru.md
Kayshen Xu 097810ab86 V0.5.1 (#77)
* fix(docker): support multi-platform builds and fix monorepo paths

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* perf(renderer): cache pre-rasterized paragraph images to avoid per-frame glyph rasterization   (#76)

* fix(canvas): stabilize frame label size during zoom

  Draw frame labels in screen-space after the viewport transform
  restore, converting scene coords manually. Previously fontSize=12/zoom
  fed into Math.ceil caused integer-boundary jumps that made labels
  flicker during zoom. Also skip shadow rendering while actively
  zooming for smoother performance.

* perf(renderer): cache pre-rasterized paragraph images to avoid per-frame glyph rasterization

   - Add paraImageCache (SkImage, 128 MB LRU limit) keyed on the same key as paraCache
   - Use drawImageRect instead of drawParagraph on cache hit, skipping per-frame glyph shaping and rasterization
   - Fall back to direct drawParagraph only when off-screen surface creation (MakeSurface) fails
   - Extract _dpr getter to deduplicate device-pixel-ratio resolution logic across draw paths
   - Evict oldest entries when cache exceeds byte limit; delete SkImage on eviction and dispose()

* feat(cli): introduce OpenPencil CLI for terminal control of the design tool

- Added a new CLI application under `apps/cli` to manage OpenPencil from the terminal.
- Implemented commands for app control (`start`, `stop`, `status`), document operations (`open`, `save`, `get`, `selection`), and design manipulation (`design`, `import`).
- Enhanced documentation with usage instructions and platform support details.
- Updated build scripts to include CLI compilation and publishing processes.
- Introduced a new GitHub Actions workflow for publishing the CLI to npm.
- Updated existing workflows to integrate CLI build steps and ensure proper versioning across packages.

* docs: update README files to include CLI tool details and multi-platform code export

- Added CLI section to README files in multiple languages, detailing commands for terminal control of the design tool.
- Included instructions for global installation and usage examples for the CLI.
- Expanded documentation on multi-platform code export capabilities from a single `.op` file to various frameworks.
- Updated CLAUDE.md to reference the new CLI documentation and its integration with the design tool.

* chore(bun.lock): update package dependencies to specific versions

- Removed workspace references for several packages in the bun.lock file.
- Updated dependencies for `@zseven-w/pen-core`, `@zseven-w/pen-types`, `@zseven-w/pen-codegen`, `@zseven-w/pen-figma`, and `@zseven-w/pen-renderer` to version `0.5.1-beta.1`.
- Ensured consistency in dependency management across the project.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: leinaldo <60176594+leinaldo@users.noreply.github.com>
2026-03-23 21:20:59 +08:00

133 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# @zseven-w/openpencil
[English](./README.md) · [简体中文](./README.zh.md) · [繁體中文](./README.zh-TW.md) · [日本語](./README.ja.md) · [한국어](./README.ko.md) · [Français](./README.fr.md) · [Español](./README.es.md) · [Deutsch](./README.de.md) · [Português](./README.pt.md) · [**Русский**](./README.ru.md) · [हिन्दी](./README.hi.md) · [Türkçe](./README.tr.md) · [ไทย](./README.th.md) · [Tiếng Việt](./README.vi.md) · [Bahasa Indonesia](./README.id.md)
CLI для [OpenPencil](https://github.com/ZSeven-W/openpencil) — управляйте инструментом дизайна из терминала.
## Установка
```bash
npm install -g @zseven-w/openpencil
```
## Поддержка платформ
CLI автоматически обнаруживает и запускает настольное приложение OpenPencil на всех платформах:
| Платформа | Обнаруживаемые пути установки |
| ----------- | --------------------------------------------------------------------------------------------------- |
| **macOS** | `/Applications/OpenPencil.app`, `~/Applications/OpenPencil.app` |
| **Windows** | NSIS для пользователя (`%LOCALAPPDATA%`), для машины (`%PROGRAMFILES%`), портативная версия |
| **Linux** | `/usr/bin`, `/usr/local/bin`, `~/.local/bin`, AppImage (`~/Applications`, `~/Downloads`), Snap, Flatpak |
## Использование
```bash
op <команда> [параметры]
```
### Методы ввода
Аргументы, принимающие JSON или DSL, можно передать тремя способами:
```bash
op design '...' # Встроенная строка (небольшие данные)
op design @design.txt # Чтение из файла (рекомендуется для больших дизайнов)
cat design.txt | op design - # Чтение из stdin (через конвейер)
```
### Управление приложением
```bash
op start [--desktop|--web] # Запустить OpenPencil (по умолчанию — настольное приложение)
op stop # Остановить запущенный экземпляр
op status # Проверить, запущено ли приложение
```
### Дизайн (пакетный DSL)
```bash
op design <dsl|@file|-> [--post-process] [--canvas-width N]
op design:skeleton <json|@file|->
op design:content <section-id> <json|@file|->
op design:refine --root-id <id>
```
### Операции с документом
```bash
op open [file.op] # Открыть файл или подключиться к активному холсту
op save <file.op> # Сохранить текущий документ
op get [--type X] [--name Y] [--id Z] [--depth N]
op selection # Получить текущее выделение на холсте
```
### Работа с узлами
```bash
op insert <json> [--parent P] [--index N] [--post-process]
op update <id> <json> [--post-process]
op delete <id>
op move <id> --parent <P> [--index N]
op copy <id> [--parent P]
op replace <id> <json> [--post-process]
```
### Экспорт кода
```bash
op export <format> [--out file]
# Форматы: react, html, vue, svelte, flutter, swiftui, compose, rn, css
```
### Переменные и темы
```bash
op vars # Получить переменные
op vars:set <json> # Задать переменные
op themes # Получить темы
op themes:set <json> # Задать темы
op theme:save <file.optheme> # Сохранить пресет темы
op theme:load <file.optheme> # Загрузить пресет темы
op theme:list [dir] # Список пресетов тем
```
### Страницы
```bash
op page list # Список страниц
op page add [--name N] # Добавить страницу
op page remove <id> # Удалить страницу
op page rename <id> <name> # Переименовать страницу
op page reorder <id> <index> # Изменить порядок страницы
op page duplicate <id> # Дублировать страницу
```
### Импорт
```bash
op import:svg <file.svg> # Импортировать SVG-файл
op import:figma <file.fig> # Импортировать файл Figma .fig
```
### Макет
```bash
op layout [--parent P] [--depth N]
op find-space [--direction right|bottom|left|top]
```
### Глобальные флаги
```text
--file <path> Целевой файл .op (по умолчанию: активный холст)
--page <id> ID целевой страницы
--pretty Читаемый вывод JSON
--help Показать справку
--version Показать версию
```
## Лицензия
MIT