Unmarkdown
Obsidian

Why Obsidian Loses Formatting When You Copy-Paste (and How to Fix It)

Updated Feb 24, 2026 · 10 min read

Obsidian is one of the best markdown editors available. But the moment you try to share your notes with someone who doesn't use Obsidian, you run into a wall. Copy-paste from Obsidian to Google Docs, Word, Slack, or email consistently breaks formatting in ways that range from annoying to unusable.

This is one of the most discussed frustrations in the Obsidian community. Reddit threads, forum posts, and Discord conversations about it go back years. The problem is structural, not a bug, and understanding why it happens will help you find the right workaround.

Two modes, two problems

Obsidian has two primary editing views: Edit Mode (also called Source mode or Live Preview) and Reading Mode. Copy-paste from each produces different results, and neither produces clean output.

Copying from Edit Mode

When you copy from Edit Mode, you're copying the raw markdown source. Obsidian puts the literal text on your clipboard, symbols and all. Paste into Google Docs and you'll see ## Project Update instead of a formatted heading. Tables show up as rows of pipe characters and dashes. Bold text appears as **asterisks**. Code blocks are just lines with triple backticks.

This is the most common source of frustration because it's the default mode most people write in. Everything looks formatted inside Obsidian, but the clipboard contains the underlying markdown syntax.

Copying from Reading Mode

Reading Mode renders your markdown into styled HTML, so copying from it should theoretically give you formatted text. In practice, the results are inconsistent. Some elements transfer, others break, and a few are actively worse than copying raw markdown.

The bold regression is particularly well-known. Since Obsidian 1.x, bold text copied from Reading Mode has been unreliable. Sometimes it transfers, sometimes it doesn't. The community has reported this repeatedly, and while Obsidian has addressed some copy-paste issues (v1.12.3 improved links and callouts specifically), bold remains inconsistent.

There's also the dark mode problem. If you use Obsidian in dark mode and copy from Reading Mode, the clipboard HTML includes the dark background color and light gray text color as inline styles. Paste into Google Docs or Word and you get gray text on a dark background pasted into a white document. You then have to manually select all and reset the text color and highlighting.

What breaks: element by element

Here's a detailed breakdown of how each markdown element fares when you copy-paste from Obsidian, covering both Edit Mode and Reading Mode.

ElementEdit ModeReading Mode
HeadingsRaw ## syntax, no heading stylesUsually transfers, but heading levels may flatten
Bold / ItalicRaw ** and * syntaxBold broken since 1.x; italic usually works
TablesPipe characters and dashesInconsistent; often pastes as plain text or misaligned columns
Code blocksTriple backticks as literal textMay transfer with monospace font, but syntax highlighting lost
Inline codeBackticks as literal charactersUsually preserves monospace styling
LinksRaw [text](url) syntaxImproved in v1.12.3; generally transfers now
ImagesRaw ![alt](path) syntaxMay embed if URL-based; local file paths never transfer
CalloutsRaw > [!type] syntaxImproved in v1.12.3; partial transfer as blockquotes
WikilinksLiteral [[page name]] textLiteral [[page name]] text (no conversion target)
TagsLiteral #tag-name textLiteral #tag-name text (no conversion target)
DataviewRaw query syntaxRenders in Reading Mode, but copies as plain text with broken layout
Block referencesLiteral ^block-id textInvisible or literal text
Math (LaTeX)Raw $...$ or $$...$$ syntaxMay render as image or plain text, depending on target app
Mermaid diagramsRaw code block with diagram syntaxRenders as image in Obsidian, but doesn't copy to clipboard
Task listsRaw - [ ] syntaxSometimes transfers checkboxes, often plain text
FootnotesRaw [^1] reference syntaxMay render inline or break entirely

The pattern is clear. Edit Mode gives you raw markdown that no external app can interpret. Reading Mode gives you partial formatting with notable gaps, especially for the elements that make Obsidian notes distinctive: tables, callouts, wikilinks, and bold text.

The v1.12.3 update: partial progress

Obsidian version 1.12.3 (released February 2026) specifically addressed copy-paste behavior for links and callouts. After the update, copying links from Reading Mode produces clickable hyperlinks in the destination, and callouts transfer as styled blockquotes rather than raw > [!type] syntax.

This is real progress, but the scope is limited. The update doesn't fix bold inconsistency, table formatting, code block styling, or any of the Obsidian-specific syntax elements (wikilinks, tags, dataview, block references). For most users who need to share notes with colleagues, the improvement covers only a fraction of the problem.

Why this is hard to fix at the source

This isn't a simple bug that Obsidian can patch. The core tension is architectural.

Obsidian stores your notes as plain .md files. The formatting you see inside Obsidian is the app's live rendering of that markdown. When you copy text, the clipboard needs to contain something the destination app can understand. Edit Mode copies the source text (markdown syntax). Reading Mode copies rendered HTML, but that HTML is optimized for Obsidian's own rendering engine, not for Google Docs or Word.

There are also Obsidian-specific extensions that have no equivalent in other apps. Wikilinks, tags, dataview queries, block references, and callout types are part of Obsidian's extended markdown dialect. No clipboard format can carry these semantics into Google Docs, because Google Docs has no concept of them.

This means the problem will always exist to some degree. Even if Obsidian perfects Reading Mode copy-paste for standard markdown elements, the features that make Obsidian powerful (and that people rely on heavily) will always lose something in translation.

The fix: Unmarkdown as the bridge

The cleanest solution is to accept that Obsidian's clipboard output will always be imperfect and use a dedicated conversion tool as the middle step. This is exactly what Unmarkdown™ is built for.

Here's the workflow:

  1. Copy from Obsidian. Open your note in Edit Mode (Source mode) and press Cmd+A to select all, then Cmd+C to copy. You're deliberately copying the raw markdown, which is the most complete representation of your content.

  2. Paste into Unmarkdown™. Open unmarkdown.com and paste. The editor shows your raw markdown on the left, and a formatted preview on the right. No account required for the core conversion.

  3. Choose your destination. Click "Copy for Google Docs," "Copy for Word," "Copy for Slack," or whichever destination you need. Each button produces clipboard content optimized for that specific app.

  4. Paste into your destination. The result has real heading styles, formatted tables with borders, styled code blocks, working hyperlinks, and proper list nesting. Bold actually works.

This approach works because Unmarkdown™ is purpose-built for the conversion step. It understands markdown syntax fully (including callouts, math, task lists, and footnotes) and knows how each destination app handles HTML. Google Docs gets real heading styles that appear in the document outline. Word gets heading styles that work with the table of contents. Slack gets mrkdwn syntax instead of HTML.

What Unmarkdown preserves that copy-paste doesn't

The difference is most visible with the elements that break most often.

Tables become native tables with borders, header row formatting, and proper cell spacing. This is the biggest single improvement over any form of direct copy-paste from Obsidian, where tables reliably break.

Bold and italic transfer correctly every time. No inconsistency, no regression, no dependency on which Obsidian version you're running.

Code blocks get monospace font, background color, and syntax highlighting. Inline code gets monospace styling.

Headings become real heading styles in the destination app (H1 through H6). In Google Docs, this means they appear in the document outline and work with table of contents. In Word, they work with the heading navigation pane.

Callouts render as styled blockquotes with the callout type (note, tip, important, warning, caution) preserved with appropriate visual styling and colored accents.

Math notation renders as formatted equations via KaTeX. Inline $...$ and display $$...$$ both work.

Mermaid diagrams render as SVG images that transfer to the destination app.

For Obsidian-specific syntax that has no equivalent in the destination (wikilinks, tags, dataview), Unmarkdown™ handles these gracefully: wikilinks become clean text with brackets stripped, tags become text with the hash symbol, and dataview queries appear as code blocks.

Adding professional styling with templates

One advantage of the Unmarkdown™ workflow is access to the template library. Rather than pasting plain formatted text, you can choose from 62 templates (Business, Academic, Developer, Creative, and more) that apply consistent typography, colors, and spacing to your entire document.

This is particularly useful when the document is going to someone outside your team. A meeting notes template, a project brief template, or a consulting report template can make your Obsidian notes look immediately professional without any manual formatting work.

Templates are optional. The default conversion (no template) produces clean, properly formatted output. Templates add an extra layer of polish when you need it.

Handling bulk exports

If you regularly need to export multiple Obsidian notes, the manual copy-paste workflow works but doesn't scale. For batch conversion, Unmarkdown™ offers a REST API and MCP server that can process markdown programmatically. You could build a script that reads .md files from your vault directory and converts them in sequence, or connect your AI assistant to Unmarkdown™ via MCP to handle exports conversationally.

The bottom line

Obsidian's copy-paste formatting issues are structural, not bugs. Edit Mode copies raw markdown. Reading Mode copies partial HTML with known gaps (bold regression, dark mode styling, no table reliability). The v1.12.3 update improved links and callouts but didn't address the broader problem.

The most reliable fix is to copy raw markdown from Obsidian (which preserves all your content), paste it into a dedicated conversion tool like Unmarkdown™, and use destination-specific output for wherever the document needs to go. The whole process takes about 30 seconds, and the result is consistently formatted output with real heading styles, clean tables, styled code, and working bold text.

Try the Unmarkdown plugin for Obsidian

Unmarkdown is now available as an Obsidian community plugin. Right-click any note and copy it formatted for Google Docs, Word, Slack, OneNote, Email, or Plain Text, directly from your vault. You can also publish notes to the web with 62 templates.

How to install (Community Plugins directory approval pending):

  1. Download main.js, manifest.json, and styles.css from the latest release
  2. In your vault, create the folder .obsidian/plugins/unmarkdown/
  3. Move the three downloaded files into that folder
  4. Open Obsidian Settings > Community Plugins > Enable "Unmarkdown"
  5. Go to Settings > Unmarkdown > Click "Connect account" to link your free Unmarkdown account

Once approved for the Community Plugins directory, you can install by searching "Unmarkdown" in Obsidian's plugin browser.

Your markdown deserves a beautiful home.

Start publishing for free. Upgrade when you need more.

View pricing