Canvas Loom

approved

by woxin667

Add functionality to the Canvas for merging, splitting, copying content, and adding markers. - This plugin has not been manually reviewed by Obsidian staff.

5 stars671 downloadsUpdated 10d agoMIT

Canvas Loom

Canvas Loom supports English and Simplified Chinese, and automatically switches with the user's Obsidian language setting.

Simplified Chinese documentation is available in README-ZH.md.

Canvas Loom is an Obsidian Canvas plugin for splitting, sorting, merging, previewing, and cleaning up Canvas text cards.

It turns scattered Canvas text cards into a repeatable workflow: split long notes into cards, sort selected cards by position or number, preview the merged result, export it, and clean up the layout without leaving Canvas.

Language Support

The default language is Auto: Simplified Chinese is used when Obsidian is running in Chinese, and English is used for other Obsidian languages. You can also choose English or Simplified Chinese manually in the plugin settings.

Visual Tour

Canvas Loom preview, sort, and export workflow

Canvas Loom is designed around a single loop: select Canvas cards, load them into the Loom workspace, adjust the order, preview the merged text, and export it back to Canvas, a Markdown note, or the clipboard.

Demo video: Preview workspace, copy, create note, create card

Core Workflows

Split Cards

Split one long Canvas card by delimiter, blank lines, or headings

Split one long text card by a custom delimiter, blank lines, or Markdown heading level. Canvas Loom keeps the original card in place and creates the remaining content as new Canvas cards.

Demo video: Split cards by delimiter, blank lines, or headings

Merge Cards

Preview selected Canvas cards before merging

Merge selected cards directly, or send them to the Loom workspace first — a three-panel sidebar (Preview, Sort, Find & Replace) where you can sort, preview, search, and export the final text.

Demo video: Merge selected Canvas cards

Sort by Position or Number

Compare position sorting and number sorting

Position sorting follows the visual layout of the Canvas. Number sorting first reads a number from the card's first line, falls back to an independent numeric badge, and places cards without either at the end in Canvas position order.

Demo video: Compare position sorting and number sorting

Badge Cards

Batch add or remove Canvas card badges

Add or edit numeric badges on one card. After selecting multiple text cards, use the badge button in the floating selection toolbar to batch-number them or remove existing badges. Mixed selections default to numbering only cards without badges. Badges remain independent from card content and act as a fallback source for number sorting.

Demo video: Add badges by position order

Clean Layout

Auto-fit Canvas card height and arrange spacing

Resize cards to fit their text and arrange selected cards with cleaner horizontal or vertical spacing.

Demo video: Auto-fit card height and arrange spacing

Export Card Images

Right-click a single text card and choose Export card as image to export it as a PNG. In the Loom workspace Preview panel, Export image exports the current preview after you choose a folder in the current vault. Preview exports use the workspace's current card order, separator, and preview text rather than a screenshot of Canvas positions.

Find & Replace in Canvas

Search and replace text across all text cards on the current canvas or within a selection. Open the floating find-and-replace panel via the search button in the canvas top-right toolbar or assign a hotkey in Obsidian settings. For a side-by-side experience, open the Loom workspace and switch to the Find tab — results appear in a scrollable list with match previews, and you can jump to matched cards by selecting and locating them on the canvas. You can replace the current match, all matches in a card, or every match across the canvas. Supports case-sensitive and regex matching.

Feature Overview

  • Split card... Split one text card by a custom delimiter, blank lines, or Markdown heading level.
  • Preview card group Load selected text cards into the Loom workspace. Switch between Preview, Sort, and Find & Replace tabs; change sorting; drag-adjust the current order; preview merged output; and export it.
  • Find & Replace in Canvas Search across all canvas text cards or within the current selection, with case-sensitive and regex matching. Navigate matches one by one, jump to matched cards by selecting and locating them, replace the current match, all matches in a card, or all matches across the canvas.
  • Quick copy / Quick merge Process selected cards with the default sorting mode from settings.
  • Export image Export the current Loom workspace preview as a PNG from the Preview panel and choose the destination folder.
  • Export card as image Export a single text card as a PNG from its Canvas context menu and choose the destination folder.
  • Add/Edit badge Add numeric outline-style badges such as 1, 2.1, or 10.3.2.
  • Number tools Batch-number selected cards or remove existing badges from the floating selection toolbar.
  • Manage card properties Inspect one card or batch-adjust selected card dimensions, width, height, aspect ratio, and layout.
  • Arrange spacing / Auto-fit height Clean up selected Canvas cards with toolbar actions.
  • Select same color cards Select text cards with the same Canvas color and open them in the preview workflow.

Settings

  • Language: controls whether the plugin follows Obsidian automatically or uses English / Simplified Chinese explicitly.
  • Canvas card delimiter: controls the delimiter used when splitting cards and can also be used as the merge separator.
  • Insert separator when merging: inserts the current Canvas card delimiter between adjacent cards in multi-card output.
  • Card sorting priority: controls whether position-based sorting prioritizes vertical or horizontal order.
  • Quick action sorting mode: controls the default sorting mode for quick copy and quick merge.
  • Enable badges: controls whether card badges are shown.
  • Show edges above cards: places Canvas connections above regular cards while keeping selected or edited cards above connections.
  • Canvas label readability compensation: controls how strongly edge labels and group titles resist Canvas zoom changes, with 100% keeping them near the default readable size.
  • Show zoom control on canvas: shows a 10%-200% zoom control inside Canvas, with a slider, percentage input, and fine adjustment buttons.
  • Merge cleanup mode: controls whether source cards are kept or deleted after creating a merged card.
  • Canvas performance mode: reduces Canvas Loom's additional rendering cost on large canvases and switches badges to compact dots at low zoom.
  • Performance diagnostics: logs Canvas Loom operation timing and Canvas statistics to the developer console.
  • Large Canvas threshold / Badge refresh delay: controls batched badge rendering and when performance mode switches badges to compact dots.

Privacy

  • No account required
  • No paid service required for any feature
  • No ads, telemetry, or uploaded user content
  • No proactive network access
  • Reads Canvas or Markdown content only when the user runs a command
  • Creates or modifies files in the current vault only when the user explicitly exports, merges, or creates a note
  • Writes generated text to the system clipboard only after the user explicitly runs a copy action
  • Never reads the system clipboard or accesses content copied from outside Obsidian

Contact

For questions or feedback, contact: anitaoskar770@gmail.com

Installation

Install from GitHub Releases

  1. Open the repository Releases page.
  2. Download main.js, manifest.json, and styles.css.
  3. Put the three files in .obsidian/plugins/canvas-loom/.
  4. Enable the plugin in Obsidian.

Build Locally

npm install
npm run build

Development

  • npm run dev: development build
  • npm run build: production build
  • npm run version: sync version metadata

Documentation

The documentation index is available at docs/README.md.

Suggested reading:

  • docs/功能-拆分Canvas卡片.md
  • docs/功能-卡片内容复制与排序.md
  • docs/功能-卡片标记.md
  • docs/功能-Canvas缩放控件.md
  • docs/功能-查看和编辑卡片属性.md
  • docs/功能-Canvas卡片查找替换.md
  • docs/功能-卡片图片导出.md
  • docs/技术实现细节.md
  • docs/技术实现-Obsidian官方上架与发布流程.md

Credits

Early development referenced joshuakto's open-source project obsidian-cardify.

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.