Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Canvas Card Merger

Canvas Card MergerCanvas Card Merger162 downloads

Merge a Canvas into a single structured Markdown note.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates4

A small, local Obsidian plugin that turns a Canvas into a single structured Markdown note — one command, no manual copy‑pasting.

Canvas is great for spreading ideas out spatially. But when you want that thinking back as a normal linear note, you end up copying every card by hand. This plugin does it for you.


What it does

Run the command “Merge canvas to note” while a canvas is open, and it creates a new note next to it that contains the canvas content as Markdown:

  • Cards become text blocks, in reading order:
    • if cards are connected by arrows, the order follows the arrows (topological order);
    • otherwise, top‑to‑bottom, then left‑to‑right.
  • Groups (the boxes you draw around cards) become headings (##). Cards inside a group are nested under it, and any headings inside a card are pushed down a level so they never outrank the group heading.
  • File/image nodes become embeds (![[file]]); link nodes become plain URLs.
  • Local images written inside a card as relative Markdown (![](attachments/x.png), ![](../assets/y.png)) are converted to vault embeds (![[x.png]]) so they keep rendering in the merged note even though it lives in a different spot. External image URLs (https://…) are kept exactly as written.
  • It never overwrites an existing note — if X (merged).md already exists, it writes X (merged 2).md, and so on.

Example

A canvas with a group “Project” containing a card # Goal / Ship MVP, a plain card Details, an image node, and a link node produces:

## Project

### Goal
Ship MVP

Details

![[diagram.png]]

https://obsidian.md

Install

This plugin is not (yet) in the community store. Two options:

Manual

  1. Create a folder <your vault>/.obsidian/plugins/canvas-card-merger/.
  2. Copy main.js and manifest.json into it.
  3. Reload Obsidian → Settings → Community plugins → enable Canvas Card Merger.

Via BRAT (Beta Reviewers Auto‑update Tool)

  1. Install the BRAT plugin.
  2. BRAT → “Add beta plugin” → paste this repository’s URL.

Usage

  1. Open a canvas.
  2. Command palette (Ctrl/Cmd+P) → Merge canvas to note.
  3. A new … (merged).md note appears in the same folder.

What it does NOT do (please read)

This is a v1 of a small tool. Be honest with yourself about its limits:

  • It flattens spatial meaning. A canvas is non‑linear; a note is linear. Positions, colours, arrow types, and the visual layout are not preserved beyond the ordering described above. If the spatial arrangement is the meaning, the merged note will lose it.
  • It only adds a file. It never edits or deletes your existing notes or the canvas. The worst it can do is leave extra (merged) notes you can delete.
  • No network. No telemetry. It runs 100% locally and sends nothing anywhere.

Safety notes

  • Back up your vault before first use, and try it on a throwaway canvas first.
  • External references are passed through verbatim — external image URLs, links, and embedded HTML alike. If a card contains something like ![x](https://example.com/...) (or raw <img>/<iframe> HTML, or CSS with an external url()), the merged note keeps it exactly as-is. The plugin does not alter or sanitize your content. When you open the merged note in reading view, Obsidian fetches any such external reference — exactly as it already does on the canvas itself, so this adds no new exposure. Still, be cautious merging canvases that contain external references you don’t trust.
  • Duplicate filenames. Local in‑card images are converted to ![[filename]] embeds, which Obsidian resolves by name across the whole vault. If two files share the same name, the embed may resolve to a different one than the card pointed at — keep image filenames unique if this matters to you.
  • When reporting a bug, desensitise first. Don’t paste private vault content, full canvas JSON, or screenshots of confidential notes into a public issue.

How ordering is decided (details)

  • Within a set of sibling cards: if there are arrows among them, a topological sort is used (A→B means A comes first); cycles fall back to geometric order, and no card is ever dropped.
  • Groups and ungrouped nodes at the same level are interleaved by position.
  • Nested groups increase the heading level (## → ### → …), capped at ######.

License

MIT. See LICENSE.

HealthExcellent
ReviewPassed
About
Merge an open Canvas into a single structured Markdown note with one command. Convert cards into ordered text blocks following arrows or top-to-bottom/left-to-right, turn groups into headings with nested cards, embed files/images and write links as URLs while auto-incrementing filenames to avoid overwriting.
CanvasMarkdown
Details
Current version
1.0.5
Last updated
2 months ago
Created
2 months ago
Updates
4 releases
Downloads
162
Compatible with
Obsidian 1.1.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Canvas Card MergerCanvas Card Mergerteddycatdeath
GitHubteddycatdeath
  1. Community
  2. Plugins
  3. Canvas
  4. Canvas Card Merger

Related plugins

Importer

Convert your data to Markdown files you can use in Obsidian. Works with Apple Notes, OneNote, Evernote, Notion, Google Keep, and many other formats.

Advanced Canvas

Supercharge your canvas experience. Create presentations, flowcharts and more.

Outliner

Work with your lists like in Workflowy or Roam Research.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Custom Frames

Turn web apps into panes using iframes with custom styling. Also comes with presets for Google Keep, Todoist and more.

Various Complements

Complete words similar to auto-completion in an IDE.

Typewriter Mode

Typewriter scroll, writing focus, current line highlight, paragraph dimming, and more!

Chat View

Chat View lets you quickly and easily create elegant Chat UIs in your Markdown Files.

Fantasy Statblocks

Create, manage and view a Fantasy Bestiary with Dungeons and Dragons style statblocks.

Chronos Timeline

Render interactive timelines inline in your notes from simple markdown