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 Read-Only Copy

JJ17 downloads

Copies selected text from read-only Obsidian Canvas cards.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates5

A small, standalone Obsidian plugin with one purpose: copy highlighted text from Markdown and text cards while a Canvas is in read-only mode.

Installation

  1. Close Obsidian.
  2. Create this folder inside your vault: <your-vault>/.obsidian/plugins/canvas-readonly-copy-fix/
  3. Copy main.js and manifest.json into that folder.
  4. Open Obsidian.
  5. Go to Settings -> Community plugins and enable Canvas Read-Only Copy.

If an earlier version is already installed, replace its main.js and manifest.json, then restart Obsidian or reload the plugin.

Use

  1. Open a Canvas and switch it to read-only mode.
  2. Highlight text inside a Markdown or text card.
  3. Press the normal copy shortcut (Ctrl+C on Windows/Linux or Cmd+C on macOS).

Choose the copy format under Settings -> Canvas Read-Only Copy -> Copy format:

  • Markdown (with formatting) copies Markdown syntax such as **bold**. This is the default and also provides rich HTML to applications that support it.
  • Rendered text (plain) copies only the visible text, without syntax such as **, _, or backticks and without rich formatting.
  • Rendered text (rich formatting) copies visible text without Markdown syntax and embeds the rendered HTML so compatible applications retain bold, italics, links, lists, and similar formatting.

Copy actions outside the selected read-only Canvas retain Obsidian's normal clipboard behavior. Body-targeted copy events only use a selection from the active Canvas, and inputs, text areas, and other editable controls inside a Canvas retain their native copy behavior.

Compatibility and limitations

  • The plugin deliberately does nothing in Canvas edit mode.
  • Canvas views in separate Obsidian windows are supported. Per-window copy listeners are removed when their Canvas views close.
  • Cross-origin web-page cards are not supported because browser security blocks access to selections inside embedded external sites.
  • Obsidian does not expose Canvas read-only state through its public plugin API. This plugin uses the Canvas view's internal readonly flag and may need a small update if Obsidian changes that internal field.

Development

The plugin is intentionally distributed as a single hand-written main.js file. There is no build step and there are no runtime dependencies.

Run the dependency-free checks with:

node --check main.js
node --check plugin.test.js
node --unhandled-rejections=strict plugin.test.js

The checks cover all copy formats, clipboard event scoping across multiple Canvas views, native copy behavior for editable controls, read-only versus edit mode, and listener cleanup when Canvas documents close or reopen.

HealthExcellent
ReviewPassed
About
Copy highlighted text from Markdown and text cards while a Canvas is in read-only mode. Put Markdown into the plain-text clipboard and rendered content into the HTML clipboard, while keeping normal copy behavior outside the read-only Canvas and inside editable controls.
CanvasMarkdown
Details
Current version
1.1.1
Last updated
4 days ago
Created
5 days ago
Updates
5 releases
Downloads
17
Compatible with
Obsidian 1.1.9+
Platforms
Desktop, Mobile
License
GPL-3.0
Report bugRequest featureReport plugin
Author
JJjeffreyl-3
GitHubjeffreyl-3
  1. Community
  2. Plugins
  3. Canvas
  4. Canvas Read-Only Copy

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