obsidian-canvas について
付属の Python ライブラリを使って、Obsidian Canvas の `.canvas` ファイルを作成・編集するスキルです。生の JSON を直接書かずに、ノード、グループ、ルーティングされたエッジを構成するワークフロー向けです。
主な機能
- 01`.canvas` ファイルの作成と操作
- 02ノード、グループ、スマートエッジの構築
- 03ライブラリの CLI によるファイル生成
- 04論理座標を使った要素の配置
- 05階層、余白、色のガイドライン適用
活用シーン
- 01Obsidian Canvas でプロジェクトフロー図を作成
- 02関連ノードをグループ化したトラックに整理
- 03JSON を手書きせずにキャンバスを生成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ altshiftstudio/ skills --skill obsidian-canvasインストール後、Claude Code で/obsidian-canvasを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/flowchart.canvasreferences/library_spec.mdspec.mdscripts/canvas_lib.py詳細
Obsidian Canvas
このスキルでは、.canvas ファイル(JSON Canvas)の作成と操作を行います。
基本的なワークフロー
- ライブラリ:提供されている
scripts/canvas_lib.pyを必ず使用してください。生の JSON は書き込まないでください。 - 実行:JSON ペイロードを作成し、標準入力経由でライブラリスクリプトにパイプします(CLI モード)。一時的な Python スクリプトは作成しないでください。
- レイアウト:論理的な座標(x,y)を重視します。ID の生成、ノードの高さ、エッジの経路設定はライブラリが自動で処理します。
リソース
- ライブラリ:
scripts/canvas_lib.py(ノード、グループ、スマートエッジのコアロジック)。 - CLI 仕様:references/library_spec.md — JSON 形式については必ず参照してください。
- 仕様:詳細な JSON スキーマについては、references/spec.md を参照してください。
- 例:assets/flowchart.canvas を参照してください。
レイアウトと美しさ(シニアデザイナー基準)
- 余白:関連するノードの間には、エッジラベル用の「棚スペース」を確保するため、120px〜180px のゆとりある垂直間隔を設けてください。
- Z インデックス:Z インデックスの処理はライブラリが行います(グループはノードの背後に描画されます)。トラック固有のコンテンツを囲むには、必ずグループを使用してください。
- 階層:キャンバスのタイトルには H1(#)、大きなセクションには H2(##)、個々のノードのタイトルには H3(###)を使用してください。
- 色:
1(赤):摩擦、エラー、提出。2(オレンジ):やり取り、サポート、アウトリーチ。3(黄):証拠、ドキュメント、データ。4(緑):成功、解決、開始。5(青/シアン):中立、運用。6(紫):タイトル、メタ情報、成果。
- エッジ:ラベルは短くしてください。同じ経路を複数のエッジが交差する場合、ライブラリは経路を調整しようとしますが、
xを手動で調整すると役立ちます。
出力
新しいキャンバスを作成するには、JSON ペイロードを作成し、ライブラリスクリプトにパイプします。
cat <<EOF | python3 /path/to/skills/obsidian-canvas/scripts/canvas_lib.py
{
"output": "Project_Flow.canvas",
"nodes": [
{"node_id": "start", "text": "Start", "x": 0, "y": 0, "color": "6"},
{"node_id": "end", "text": "End", "x": 0, "y": 200, "color": "1"}
],
"edges": [
{"from_node": "start", "to_node": "end"}
],
"groups": [
{"label": "Phase 1", "nodes_in_group": ["start", "end"], "color": "5"}
]
}
EOF
コメント
Markdown 対応