Back Markdown

Word to Markdown Converter

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.

Last updated: May 2026 · Reviewed by FreeDevTool documentation engineering team
Characters
0
Lines
0
Headings
0
Copied!

Word, Google Docs, Notion → Markdown — moving prose into version control

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.

Markdown is not one spec — it is six

FlavorWhere you'll meet itNotable features
Original Markdown (Gruber, 2004)Plain .md with no extensionsHeadings, lists, links, code, blockquote. No tables.
CommonMarkThe de-facto standard since 2014Tightened parsing rules. Still no tables natively.
GitHub Flavored Markdown (GFM)GitHub, GitLab, Bitbucket, most code hostsTables, strikethrough, task lists, autolinking, fenced code with syntax hints.
MDXNext.js, Astro, Docusaurus, modern doc sitesJSX components inline in Markdown.
Pandoc MarkdownAcademic / publishing pipelinesFootnotes, citations, math, raw HTML/LaTeX blocks.
Obsidian MarkdownObsidian, 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.

What survives the conversion — and what does not

Source featureSurvives?Notes
Heading 1–6 (semantic)YesBecomes #######.
"Big bold text" used as a fake headingNoBrowser sees only bold; not a heading. Fix in source first.
Bold / italic / strikethroughYesMaps to **, *, ~~.
Bullet / numbered listsYesIncluding nested, up to ~6 levels.
HyperlinksYesBecomes [text](url).
Inline imagesPartialExternal URLs survive; blob: URLs do not (browser-session only).
TablesYesMaps to GFM pipe tables.
FootnotesNoPandoc-only feature; add manually.
Comments / track changesNoWord-specific, no Markdown equivalent.
Page breaks, page numbersNoMarkdown is flow-based, not paginated.
Embedded fonts / colorsNoMarkdown is content, not presentation. Use a CSS theme.
LaTeX mathNoRenders as plain text. Wrap in $…$ manually if your renderer supports it.
Mermaid diagramsNoRe-author as ```mermaid code blocks.

The "fake heading" problem — why headings disappear

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:

Image handling — the trickiest part

Pasted images can come in three forms, each with different conversion behavior:

  1. External URL (https://example.com/img.png) — survives intact. The Markdown image points to the original URL.
  2. Base64 data URI (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.
  3. Browser blob URL (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.

Table conversion — the two formats and their limits

The output uses GFM pipe tables:

| Column 1 | Column 2 | Column 3 |
| -------- | -------- | -------- |
| cell     | cell     | cell     |

Limitations to be aware of:

Common Word-to-Markdown mistakes

Round-tripping — Markdown → Word → Markdown

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.

The build-time conversion pipeline

For doc teams that author in Notion or Confluence and ship to a static site, automation beats manual conversion:

Frequently Asked Questions

How do I convert a Word document to Markdown?
Open the document in Microsoft Word, Google Docs, or any rich-text editor, select all content with 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.
Does this tool upload my document to a server?
No. The conversion happens entirely in your browser using vanilla JavaScript. Your content never leaves your device, which makes the tool safe for internal docs, NDAs, client briefs, and pre-publication drafts. You can verify this yourself by opening DevTools, switching to the Network tab, and running a conversion — you'll see zero outbound requests. Works offline too once the page is loaded.
What Markdown flavor does the output use?
The output is CommonMark-compatible with GitHub Flavored Markdown extensions (tables, strikethrough, fenced code blocks). That means it renders correctly on GitHub, GitLab, Bitbucket, Obsidian, Notion imports, most static site generators (Hugo, Jekyll, Eleventy, Astro, Next.js MDX), and virtually every major documentation platform including Docusaurus, MkDocs, and VuePress.
Why do some headings come out wrong?
Word and Google Docs often style visual headings with font-size changes instead of real heading semantics. If a writer manually made text large and bold rather than applying the Heading 1 through Heading 6 paragraph styles, the browser sees only bold text, not a heading. Apply proper heading styles in the source document for best results, or fix the output after conversion by adding # prefixes manually.
Can I convert tables and images too?
Yes. HTML tables are converted to GitHub-flavored Markdown pipe tables with header rows. Images become Markdown image references with their alt text and src URL preserved. If the image was embedded as a base64 data URI (common when copying from Google Docs), the data URI is kept intact so the Markdown continues to work standalone. Note that images copied from some sources may have blob: URLs that only exist in the original browser session.
What about footnotes, math, and custom formatting?
Core CommonMark and GitHub Flavored Markdown features are supported. Footnotes, LaTeX math ($...$), 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.

Browse all 50 free developer tools

All tools run in your browser, no signup required, nothing sent to a server.