Skip to content

Office · Tools

Markdown Converter

Convert Markdown to plain text, formatted text, or safe HTML locally, and print it as a PDF.

Loading tool…

Runs locally in your browser. Your input is not uploaded or stored. You can verify this in your browser’s network panel.

Processing limits

  • Accepted formats: .md, .markdown, .txt
  • Maximum file size: 2 MiB
  • Maximum input length: 200,000 characters
  • Maximum files: 1

What does this tool solve?

Convert Markdown into readable plain text, copy it with formatting into a document or email, or download safe HTML. Print the formatted document to save a PDF using your browser. Read the document conversion guide to choose an output format, or use Text Diff to review changes before sharing.

Continue with Text Diff Checker, HTML Entity Encoder / Decoder · Convert Markdown for documents and email

What examples should you start with?

Preserve literal symbols and task status

Input
Text
# Notes

**Keep** `user_name` and 2 * 3.

- [x] Draft
- [ ] Review
Output
Text
Notes

Keep user_name and 2 * 3.

- [x] Draft
- [ ] Review

Convert a table and retain link URLs

Input
Text
| Name | Status |
| --- | --- |
| Spec | Ready |

[Docs](https://example.com/docs)
Output
Text
Name	Status
Spec	Ready

Docs (https://example.com/docs)

Preserve code without the fence or language label

Input
Text
```js
const a_b = 2 * 3;
  // Keep indentation
```
Output
Text
const a_b = 2 * 3;
  // Keep indentation

How does it work?

A CommonMark parser and GitHub Flavored Markdown extensions create one syntax tree. Plain text is rendered from its nodes, preserving code, literal characters, list structure, task states, tab-separated table rows, and referenced footnotes.

A separate HTML tree is sanitized and given fixed formatting styles. The same safe body is used for the preview, rich clipboard, HTML export, and printing. Raw HTML is displayed as text and images become their alternative text, so conversion does not request external images.

Only one UTF-8 .md, .markdown, or .txt file is read, up to 2 MiB and 200,000 input characters. File contents and pasted text stay in browser memory; clear the page to remove the current input and result.

Optional cleanup removes only U+200B, U+2060, U+FEFF, and U+00AD from the conversion input, counts each removal, and keeps the original editor text unchanged. It is disabled by default.

What are the edge cases and limits?

  • Markdown syntax removes formatting markers, not arbitrary underscores, asterisks, or code characters. Links keep their URLs by default; disable that option for label-only plain text.
  • Raw HTML tags remain visible as literal text. Images are represented only by their alt text, and images without alt text produce no visible content. Unsafe URL schemes do not create executable HTML links.
  • Math, Mermaid, MDX, and frontmatter have no special renderer. CommonMark soft line breaks use normal HTML layout; hard line breaks remain explicit. Extremely deep trees beyond 128 node levels are rejected.
  • Rich text uses HTML and plain-text clipboard formats, not an RTF or DOCX file. Paste appearance depends on the receiving application. Unsupported HTML clipboard writes fall back to plain text with an explicit message.
  • Print / Save as PDF opens the browser print dialog. Review Chinese fonts, long tables, and page breaks there. Pagination, available printers, and PDF saving depend on your browser and operating system.
  • Removing invisible characters may change intentional spacing or line wrapping. ZWJ, ZWNJ, emoji variation selectors, and bidirectional controls are preserved. Cleanup does not detect AI provenance or repair garbled encoding.

Technical reference

Related tools

Related guides