cli-anything-drawio 是做什麼的?
一個用於 Draw.io 的 CLI 工具 — 可從命令列建立、編輯及匯出圖表。
安裝
此 CLI 作為 cli-anything-drawio 套件的一部分進行安裝:
pip install cli-anything-drawio
前置需求:
- Python 3.10+
- 系統上必須安裝 drawio
使用方式
基本命令
# 顯示說明
cli-anything-drawio --help
# 啟動互動式 REPL 模式
cli-anything-drawio
# 建立新專案
cli-anything-drawio project new -o project.json
# 以 JSON 輸出執行(供代理使用)
cli-anything-drawio --json project info -p project.json
REPL 模式
當不帶子命令執行時,CLI 會進入互動式 REPL 階段:
cli-anything-drawio
# 互動式輸入命令,支援標籤補全與歷史記錄
命令組
Project(專案)
專案管理:new(新建)、open(開啟)、save(儲存)、info(資訊)。
| 命令 | 描述 |
|---|---|
new | 建立新的空白圖表 |
open | 開啟現有的 .drawio 專案檔 |
save | 儲存目前專案 |
info | 顯示詳細專案資訊 |
xml | 列印目前專案的原始 XML |
presets | 列出可用的頁面大小預設 |
Shape(形狀)
形狀操作:add(新增)、remove(移除)、move(移動)、resize(調整大小)、style(樣式)。
| 命令 | 描述 |
|---|---|
add | 新增形狀到圖表 |
remove | 依 ID 移除形狀 |
list | 列出頁面上的所有形狀 |
label | 更新形狀的標籤文字 |
move | 移動形狀到新座標 |
resize | 調整形狀大小 |
style | 設定形狀的樣式屬性 |
info | 顯示形狀的詳細資訊 |
types | 列出所有可用的形狀類型 |
Connect(連接)
連接器操作:add(新增)、remove(移除)、style(樣式)。
| 命令 | 描述 |
|---|---|
add | 在兩個形狀之間新增連接器 |
remove | 依 ID 移除連接器 |
label | 更新連接器的標籤 |
style | 設定連接器的樣式屬性 |
list | 列出頁面上的所有連接器 |
styles | 列出可用的邊緣樣式 |
Page(頁面)
頁面操作:add(新增)、remove(移除)、rename(重新命名)、list(列出)。
| 命令 | 描述 |
|---|---|
add | 新增頁面 |
remove | 依索引移除頁面 |
rename | 重新命名頁面 |
list | 列出所有頁面 |
Export(匯出)
匯出操作:渲染為 PNG、PDF、SVG。
| 命令 | 描述 |
|---|---|
render | 將圖表匯出為檔案 |
formats | 列出可用的匯出格式 |
Session(階段)
階段管理:status(狀態)、undo(復原)、redo(重做)。
| 命令 | 描述 |
|---|---|
status | 顯示目前階段的狀態 |
undo | 復原上次操作 |
redo | 重做上次復原的操作 |
save-state | 將階段狀態儲存至磁碟 |
list | 列出所有已儲存的階段 |
範例
建立新專案
建立一個新的 drawio 專案檔。
cli-anything-drawio project new -o myproject.json
# 或搭配 JSON 輸出以程式化方式使用
cli-anything-drawio --json project new -o myproject.json
互動式 REPL 階段
啟動一個支援復原/重做的互動式階段。
cli-anything-drawio
# 互動式輸入命令
# 使用 'help' 查看可用命令
# 使用 'undo' 和 'redo' 進行歷史導航
匯出專案
將專案匯出為最終輸出格式。
cli-anything-drawio --project myproject.json export render output.pdf --overwrite
狀態管理
CLI 透過以下方式維護階段狀態:
- 復原/重做:最多 50 層歷史記錄
- 專案持久性:將專案狀態儲存/載入為 JSON
- 階段追蹤:追蹤修改與變更
輸出格式
所有命令支援雙重輸出模式:
- 人類可讀(預設):表格、色彩、格式化文字
- 機器可讀(
--json旗標):結構化 JSON,供代理使用
# 人類輸出
cli-anything-drawio project info -p project.json
# 供代理使用的 JSON 輸出
cli-anything-drawio --json project info -p project.json
供 AI 代理使用
當以程式化方式使用此 CLI 時:
- 務必使用
--json旗標以取得可解析的輸出 - 檢查回傳碼 — 0 表示成功,非零表示錯誤
- 解析 stderr 以取得失敗時的錯誤訊息
- 在所有檔案操作中使用絕對路徑
- 在匯出操作後確認輸出是否存在
更多資訊
- 完整文件:參閱套件中的 README.md
- 測試覆蓋率:參閱套件中的 TEST.md
- 方法論:參閱 cli-anything-plugin 中的 HARNESS.md
版本
1.0.0