Need a fast text to markdown converter? Paste formatted content directly from Microsoft Word, Google Docs, Notion, or any rich-text source and this tool produces clean Markdown with headings (H1–H6), bold, italic, strikethrough, links, images, bullet and numbered lists, blockquotes, inline and fenced code, horizontal rules, and GitHub-flavored tables. If you already have HTML source, switch to the HTML tab and paste the raw markup instead. Everything runs locally in your browser — your draft never touches a server, which matters for NDAs, internal docs, and early-stage writing. Live character, line, and heading counts help you verify the output at a glance.
Markdown is the writing format of every serious documentation system: GitHub README files, MDX-based docs sites, Astro and Next.js content pipelines, static site generators, Notion exports, Obsidian vaults, and AI training datasets. Yet most authoring still happens in Word, Google Docs, or Notion — tools where the source is a binary blob you cannot diff. The bridge is conversion: paste rich text, get Markdown. This guide walks through the Markdown spec landscape (yes, there is more than one), the lossy transitions that bite every team, and the practical moves that keep your converted content rendering correctly across GitHub, Notion, Obsidian, and your static site generator.
| Flavor | Where you'll meet it | Notable features |
|---|---|---|
| Original Markdown (Gruber, 2004) | Plain .md with no extensions | Headings, lists, links, code, blockquote. No tables. |
| CommonMark | The de-facto standard since 2014 | Tightened parsing rules. Still no tables natively. |
| GitHub Flavored Markdown (GFM) | GitHub, GitLab, Bitbucket, most code hosts | Tables, strikethrough, task lists, autolinking, fenced code with syntax hints. |
| MDX | Next.js, Astro, Docusaurus, modern doc sites | JSX components inline in Markdown. |
| Pandoc Markdown | Academic / publishing pipelines | Footnotes, citations, math, raw HTML/LaTeX blocks. |
| Obsidian Markdown | Obsidian, Foam, Bear | [[wikilinks]], ![[embeds]], %%comments%%, callouts. |
This converter outputs GitHub Flavored Markdown, the safest target for portability. It renders correctly in GitHub, GitLab, Astro, Next.js, Eleventy, Hugo, MkDocs, Docusaurus, and most of Notion's import.
| Source feature | Survives? | Notes |
|---|---|---|
| Heading 1–6 (semantic) | Yes | Becomes #–######. |
| "Big bold text" used as a fake heading | No | Browser sees only bold; not a heading. Fix in source first. |
| Bold / italic / strikethrough | Yes | Maps to **, *, ~~. |
| Bullet / numbered lists | Yes | Including nested, up to ~6 levels. |
| Hyperlinks | Yes | Becomes [text](url). |
| Inline images | Partial | External URLs survive; blob: URLs do not (browser-session only). |
| Tables | Yes | Maps to GFM pipe tables. |
| Footnotes | No | Pandoc-only feature; add manually. |
| Comments / track changes | No | Word-specific, no Markdown equivalent. |
| Page breaks, page numbers | No | Markdown is flow-based, not paginated. |
| Embedded fonts / colors | No | Markdown is content, not presentation. Use a CSS theme. |
| LaTeX math | No | Renders as plain text. Wrap in $…$ manually if your renderer supports it. |
| Mermaid diagrams | No | Re-author as ```mermaid code blocks. |
The single biggest source of "the headings didn't come through" complaints is that the source document used direct formatting (font size 24, bold) instead of paragraph styles (Heading 1, Heading 2). Browsers expose only what HTML semantics encode. Direct formatting becomes <span style="font-size: 24pt; font-weight: bold">…</span>, which is just bold text — not an <h1>.
The fix is structural, not cosmetic:
Pasted images can come in three forms, each with different conversion behavior:
https://example.com/img.png) — survives intact. The Markdown image points to the original URL.data:image/png;base64,…) — survives, but inflates the file size by ~33% and embeds the image in the Markdown. Useful for self-contained docs; bad for git.blob:https://docs.google.com/…) — only works in the browser session that created it. After conversion, these images break unless you save them locally first.The pragmatic workflow for Google Docs: download the document as .html (which packages images) and paste from there, or use Docs' "Download as Markdown" if it has been enabled in your workspace.
The output uses GFM pipe tables:
| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| cell | cell | cell |
Limitations to be aware of:
```code``` blocks break syntax highlighters. Run a final find-and-replace.-- to —. Add it to the same find-and-replace pass.<br> tags inside paragraphs because the source had soft line-breaks. Strip them or run the output through a Markdown formatter.\r\n. Most renderers tolerate it; some build tools (older Eleventy versions) trip up. Normalize to \n on save.Sometimes you need to send a Markdown file to a non-technical stakeholder, get edits in Word, and convert back. Pandoc is the gold-standard tool for round-tripping:
# Markdown to Word
pandoc input.md -o output.docx
# Word back to Markdown
pandoc input.docx -t gfm -o output.md
Round-tripping is lossy: Word adds direct formatting, table styling, and font specifications that translate back imperfectly. Always diff before merging.
For doc teams that author in Notion or Confluence and ship to a static site, automation beats manual conversion:
notion-to-md npm package, or Notion's official Markdown export.confluence-to-markdown CLI, or Atlassian's "Export to HTML" + Pandoc.docs-to-markdown Apps Script.Ctrl+A (Cmd+A on Mac), copy with Ctrl+C, then paste into the rich-text panel above. The browser receives the formatting along with the text. Click Convert to Markdown and the tool walks the HTML DOM to produce clean Markdown with headings, bold/italic, links, lists, and tables preserved. No file upload needed.# prefixes manually.$...$), and Mermaid diagrams are not emitted automatically because they have no direct HTML equivalent — you'll need to add those manually after conversion. For most documentation, blog posts, and long-form writing, the supported subset covers 95% of what you actually need.All tools run in your browser, no signup required, nothing sent to a server.