CANVAS: embed one frame or element of a canvas in a note, live (§60) #997

Open
opened 2026-10-03 08:09:30 +00:00 by kayg · 0 comments
Owner

Owner decision (2026-10-03, #509 C14)

Contract: DESIGN §60 "Partial embeds". Builds on #976 (core) and the existing whole-canvas embed.

  • A note embeds a whole canvas ![[Board]], one frame ![[Board#Roadmap]] or one element ![[Board#^abc12345]] (8-char element ID).
  • The embed renders live (updates when the canvas changes), cropped to the frame/element bounds with padding, using @excalidraw/utils export (no React needed for previews), lazy and only in view.
  • Frame links resolve through the frame's stable element ID, so renaming the frame keeps the embed working; the link text is updated on the next save of the note (never on open).
  • Click opens the canvas zoomed to that frame/element (/n/<id>?el=). Missing frame/element → plain placeholder.
  • Parity: the Markdown syntax is the API; Search indexes the embed reference for backlinks ("Used in").

Verification

e2e as a User: embed a frame, edit the canvas, see the embed update; rename the frame, embed still works; delete it, placeholder. Screenshots 390/820/1440 light/dark.

## Owner decision (2026-10-03, #509 C14) Contract: DESIGN §60 "Partial embeds". Builds on #976 (core) and the existing whole-canvas embed. - A note embeds a whole canvas `![[Board]]`, one frame `![[Board#Roadmap]]` or one element `![[Board#^abc12345]]` (8-char element ID). - The embed renders live (updates when the canvas changes), cropped to the frame/element bounds with padding, using `@excalidraw/utils` export (no React needed for previews), lazy and only in view. - Frame links resolve through the frame's stable element ID, so renaming the frame keeps the embed working; the link text is updated on the next save of the note (never on open). - Click opens the canvas zoomed to that frame/element (`/n/<id>?el=`). Missing frame/element → plain placeholder. - Parity: the Markdown syntax is the API; Search indexes the embed reference for backlinks ("Used in"). ## Verification e2e as a User: embed a frame, edit the canvas, see the embed update; rename the frame, embed still works; delete it, placeholder. Screenshots 390/820/1440 light/dark.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#997
No description provided.