New files:
commands/canvas.md — slash command with full trigger table
skills/canvas/SKILL.md — complete skill: open, new, add image/text/pdf/note,
zone, list, from-banana operations
skills/canvas/references/canvas-spec.md — Obsidian canvas JSON spec:
coordinate system, all node types, color table,
image sizing by aspect ratio, auto-positioning
pseudocode, common mistakes, full example
Auto-positioning algorithm (bbox math):
- Finds rightmost node in target zone
- Places next node at rightmost_x + 40, same row y
- If overflow: wraps to new row (max_y_in_zone + 20)
- Falls back to below all content if no zone found
Banana integration:
- /canvas from banana: checks .recent-images.txt first, then
filesystem find -newer 10min, presents list for confirmation
- After any /banana run: suggests /canvas from banana
Updated:
skills/wiki/SKILL.md — added /canvas to routing table
skills/wiki/references/plugins.md — added Calendar + Thino with
pre-installed note + manual install fallback
README.md — /canvas in commands table + file structure
1.0 KiB
1.0 KiB
description
| description |
|---|
| Open, create, or update a visual canvas — add images, text, PDFs, wiki pages, and banana-generated assets to Obsidian canvas files. |
Read the canvas skill. Then run the operation matching the user's command.
| Command | What it does |
|---|---|
/canvas |
Status check — report node counts, list zones, open instructions |
/canvas new [name] |
Create a new named canvas in wiki/canvases/ |
/canvas add image [path] |
Add image to canvas (download if URL, copy if outside vault) |
/canvas add text [content] |
Add a text card to the canvas |
/canvas add pdf [path] |
Add a PDF document node |
/canvas add note [page] |
Add a wiki page as a linked card |
/canvas zone [name] [color] |
Add a new labeled zone group |
/canvas list |
List all canvases with node counts |
/canvas from banana |
Find recent generated images and add them |
Default canvas: wiki/canvases/main.canvas
If the canvas file does not exist, create it before adding anything.