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
22 lines
1.0 KiB
Markdown
22 lines
1.0 KiB
Markdown
---
|
|
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.
|