Advanced Canvas for Obsidian.md
<a href="https://github.com/Developer-Mike/obsidian-advanced-canvas/stargazers"><img src="https://img.shields.io/github/stars/Developer-Mike/obsidian-advanced-canvas?colorA=363a4f&colorB=e0ac00&style=for-the-badge" alt="GitHub star count"></a>
<a href="https://github.com/Developer-Mike/obsidian-advanced-canvas/issues"><img src="https://img.shields.io/github/issues/Developer-Mike/obsidian-advanced-canvas?colorA=363a4f&colorB=e93147&style=for-the-badge" alt="Open issues on GitHub"></a>
<a href="https://obsidian.md/plugins?id=advanced-canvas"><img src="https://img.shields.io/badge/dynamic/json?url=https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/community-plugin-stats.json&query=$.advanced-canvas.downloads&label=Downloads&style=for-the-badge&colorA=363a4f&colorB=d53984"/></a>
<a href="https://raw.githubusercontent.com/Developer-Mike/obsidian-advanced-canvas/main/LICENSE"><img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=GPL-3.0&colorA=363a4f&colorB=b7bdf8" alt="GPL-3.0 license"/></a>
<b>⚡ Supercharge</b> your canvas experience! Create presentations, flowcharts and more!
This plugin enhances the Obsidian canvas with a wide array of features:
All features can be enabled/disabled in the settings.
Open the Community Plugins tab in the settings and search for "Advanced Canvas" (or click here).
Other installation methods
advanced-canvas in your vault's plugins folder (<vault>/.obsidian/plugins/).main.js, styles.css and manifest.json from the latest release and put them in the advanced-canvas folder.Please consider supporting the plugin. There are many hours of work and effort behind it. The two easiest ways to support the plugin are either by starring ⭐ the repository or by donating any amount on Ko-fi ❤️. Thank you!
Compatible with the JSON Canvas format, the Advanced JSON Canvas format takes it a step further by adding more features and flexibility. The Advanced JSON Canvas format was introduced to provide longevity, readability, interoperability, and extensibility for canvases created with Advanced Canvas.
Advanced Canvas enables .canvas files to be indexed by the metadata cache. This means that there is now full compatibility with the graph view, outgoing links and backlinks. You can even enable (optional) the creation of an outgoing link if two embeds in a canvas are connected by an edge. This feature brings the full power of Obsidian's linking system to the canvas file format.
Metadata Cache Support Example
<img src="https://raw.githubusercontent.com/Developer-Mike/obsidian-advanced-canvas/main/assets/docs/metadata-cache-support.png" alt="Metadata Cache Support Example"/>
Outgoing Link Using An Edge Example
<img src="https://raw.githubusercontent.com/Developer-Mike/obsidian-advanced-canvas/main/assets/docs/edge-metadata-cache.png" alt="Outgoing Link Using An Edge Example"/>
Technical Details
.canvas file now contains a value for the hash key (Generated from the filepath) instead of an empty string.app.metadataCache.fileCache[<filepath>] object to see the changes.app.metadataCache object - the same object that is used by Obsidian for markdown files.app.metadataCache.getCache/app.metadataCache.getFileCache now works with .canvas files.position object which is found inside metadata cache entries now contains a new key nodeId for .canvas files..canvas file now contains a new key nodes which is an object of type { [nodeId: string]: MetadataCacheEntry } - this allows for other plugins to access the full metadata cache for single nodes. The MetadataCacheEntry object is the same as for markdown files (even created with the same function - 1:1 compatibility)..canvas files.app.metadataCache.resolvedLinks object values for .canvas files are implemented in the exact same way as for markdown files.Additionally, Advanced Canvas introduces full frontmatter support for .canvas files. You can now view and edit the frontmatter directly within the canvas view:
tags or custom keys for organization.aliases to create alternative names for your canvas files.cssclasses to apply custom CSS styles to the entire canvas view..canvas files are searchable using Obsidian's global search pane, further integrating canvases into your knowledge management system.This significantly enhances the ability to manage, organize, and customize your canvases alongside your other notes in Obsidian.
Advanced Canvas can automatically create edges between file nodes based on their frontmatter properties. By default (if enabled), it will create edges to files linked in the canvas-edges frontmatter property. This allows you to create fixed relationships between file nodes in your canvas, making it easier to visualize fixed structures or connections between different files.
Advanced Canvas now allows you to link or embed the content of a single node from a .canvas file directly into your markdown files. This provides a granular way to reference specific pieces of information within your canvases. (Take a look at Advanced Canvas: Copy wikilink to node for getting the id of a node).
#:
[[canvas-file-name#node-id]]![[canvas-file-name#node-id]]Quickly locate text within your canvas using a familiar search experience. Advanced Canvas integrates a native-like file search specifically for canvas content.
Search current file command, which is commonly bound to the Ctrl+F (or Cmd+F on macOS) keyboard shortcut.Search Example
<img src="https://raw.githubusercontent.com/Developer-Mike/obsidian-advanced-canvas/main/assets/docs/sample-search.gif" alt="Search Example"/>
View available commands
Advanced Canvas: Toggle readonlyAdvanced Canvas: Create text node$ claude mcp add obsidian-advanced-canvas \
-- python -m otcore.mcp_server <graph>