New Plugin: Enhanced Canvas

I’m excited to introduce my latest Obsidian plugin that enhances Canvas functionality through automated node connections and property synchronization.

If you’re a heavy user of Obsidian Canvas and want to maintain Canvas relationships within your notes, this plugin is designed for you.

This plugin seamlessly integrates Canvas nodes with note properties by automatically managing markdown links and providing intuitive navigation features.

The plugin is now available in the Obsidian Community Plugin store - simply search for “Enhanced Canvas”.

demo

Key Features demonstrated above:

  1. When a node is added to a canvas, the plugin automatically generates a ‘canvas’ property with a link to the corresponding canvas file in the note.
  2. When creating an edge in the Canvas, the plugin generates a property named after the canvas file (without the ‘.canvas’ extension) containing a link to the target note.
  3. Removing a note from the canvas automatically cleans up all canvas-related properties from the note.

Navigation feature: clicking any canvas link in your notes triggers automatic focus and zoom to the associated node within the canvas, making it effortless to locate specific notes in your Canvas.

focus

Moreover, when opening a Canvas file, this plugin automatically updates canvas-specific properties for all file nodes. When deleting a Canvas file, this plugin removes all the property (markdown link) in all the notes.

Other than that, this plugin provides a command “Auto Connect Nodes and Adjust Edge with Shortest Path”

  • Automatically establishes connections based on existing markdown links in notes
  • Optimizes edge paths in Canvas for minimal distance
  • Supports all node types (text nodes, group nodes, images, nested Canvases, etc.)
    demoCommand
10 Likes

Kudos, this is really handy!
Gonna mess with it this week.

1 Like

I installed and tried it. I’ve been looking for a way to visualize logical Markdown links between notes like in Scrintal so that I can detect clusters and write storylines by identifying the gaps between those cluster. It works and I’m very happy! Thank you for your time.

2 Likes

Thank you for sharing your feedback. I’ve released a newer version of the plugin that automatically adds all relevant properties when plugin enabled. Please make sure to update to the latest version to enjoy these improvements.

  • I’ve updated this plugin through several versions and would like to share what I consider improvements worth highlighting.
  • First is the enhanced focusing feature, which now supports multiple nodes. This means if you have duplicate notes in a Canvas, you can locate all instances by clicking the link to Canvas in the “canvas” property.
    • Previously, I had assumed users wouldn’t place duplicate notes in a Canvas, until I found myself doing exactly that. With this feature, I can now identify where duplicate nodes are located.
    • Additionally, all property updates related to edges now properly support duplicate nodes, which can be considered a bug fix.
  • The second improvement is the icon for the “canvas” property. It now looks so good that there’s no longer any need for the “File Property Enhancer” plugin.

output

1 Like

The AutoResize is still too laggy.

The node automatically resizes once the left pointer is released and the user finishes editing the Canvas node (the node must exit the editing view). This is not real-time resizing. I am leveraging Obsidian’s native auto-resize function, so resizing only occurs in reading mode.

Do you have any advice on this? Perhaps I could implement it as an advanced feature.

Add 3 feature that complete the user experience of Canvas:

Split Node by Headings

Split Node by Headings instantly deconstructs a single node into a hierarchical tree based on its headings. You can try this by right-clicking on a file (text) node and selecting “Split by Headings” in Canvas.

split

Send Note to Canvas

With the “Send to Canvas” command, you can push your current markdown note directly to a specific Canvas. It automatically appends a “canvas” property to your note, allowing you to navigate back to the board instantly in the future.

Once you have sent a note, that Canvas becomes the “Selected.” You can then use the “Send to Selected Canvas” command on other notes to instantly add them to the same board—bypassing the file selection step entirely.

send

Auto-Resize Node

With this update, double-clicking the bottom edge engages “Auto-Resize.” Now, when you drag the right edge to adjust the width or update the text, the height dynamically adjusts to fit your text. No need for repeated double-clicking!

Dragging the bottom edge to manually adjust the height disables the node’s auto-resize feature.

autoresize

This might be useful in some of the work I do.

Define semantic similarity and project scope. Outside of properties, what would that look like?

My only concern is the amount of clean up when notes are not appropos for the convas purpose.

1 Like