Text to Markdown Converter
ConvertPaste anything — a web page, a Google Doc, JSON, CSV, YAML, XML, or plain text — and get clean Markdown with a live preview.
Convert any text to Markdown
Markdown is what READMEs, wikis, issue trackers, static-site generators, and notes apps such as Obsidian are written in, but the text you need to put there rarely starts out as Markdown. It is an API response, a spreadsheet export, a web page, a Google Doc, or a plain-text email. This converter takes any of them and writes clean GitHub-flavored Markdown, with a live preview so you can check the result before you paste it anywhere.
There is nothing to choose up front. The format is recognised as you paste: JSON, JSON Lines, YAML, CSV, TSV, XML, HTML, source code, Markdown that needs no conversion, or plain text. The From menu shows what was detected, and you can override it when a guess is wrong.
HTML to Markdown, including copied web pages
Paste HTML source and it is converted element by element: <h1> to <h6> become # headings, <strong> and <em> become **bold** and *italic*, links and images keep their addresses and titles, <ul> and <ol> become nested lists, checkbox items become task lists, <table> becomes a GitHub table with its column alignment, and <pre> blocks become fenced code that keeps its language from classes such as language-js. Scripts, styles, forms, and buttons are dropped, and the page title becomes the heading when the page has no <h1> of its own.
You don't need the source, either. Select part of a web page in your browser, copy it, and paste it into the empty input: the clipboard holds the formatted version as HTML alongside the plain text, and the converter uses the formatted one. The HTML is parsed into an inert document in your browser, so nothing in it runs and no image is fetched while converting.
Google Docs and Word to Markdown
Copying from Google Docs or Microsoft Word works the same way, and each has quirks the converter knows about. Google Docs wraps a copied selection in one bold tag that is styled back to normal weight, and marks real bold and italic with styles rather than tags; Word types its bullets as text inside list paragraphs. Both come out as proper Markdown headings, emphasis, links, bullet and numbered lists, and tables.
If you wanted the bare text rather than the formatting, click Paste as plain text under the input and the plain version replaces it.
JSON, YAML, and XML as readable documents
Structured data becomes a document a person can read. In the Document layout, a name or title field becomes the top heading and a description the opening paragraph; plain fields gather into a Field / Value table; short lists of values sit on one line; every nested object becomes a section with a heading named after its key; and every list of records becomes a table. A document wrapped in a single root key, as every XML file is, takes that key as its title.
- Document: headings, field tables, and a table per list of records — the best fit for configuration, API responses, and XML.
- Table: one table for the whole input, with nested fields flattened into dot-path columns such as
address.city. - List: a nested bullet list that mirrors the structure exactly, key by key.
CSV and TSV to Markdown tables
Paste a CSV or TSV export and it becomes a GitHub-flavored table. Commas, semicolons, and tabs are recognised, the first row becomes the header, quoted values with commas or line breaks inside them are read correctly, pipes inside values are escaped so the table never breaks, and columns that hold only numbers are right-aligned the way a spreadsheet shows them.
For data you want as JSON instead, the CSV to JSON converter turns the same file into an array of objects, and the JSON to Markdown converter goes from JSON straight to a table.
Plain text to Markdown
Plain text is kept as you wrote it, with its structure made explicit. Paragraphs stay paragraphs and each line break is kept, unless you turn on Join wrapped lines for text wrapped at a fixed width, such as an email or terminal output. Lines starting with bullets such as •, -, or * become a list, numbered lines a numbered list, deeper indentation a nested list, and a short title-like line above a paragraph a heading. A line of dashes becomes a horizontal rule, and an indented block becomes a code block.
Anything Markdown would otherwise read as syntax is escaped: a # at the start of a line, a < that looks like an HTML tag, an entity such as &. The rendered text says exactly what yours said. Source code is recognised and wrapped in a fenced block labelled with its language, so it is highlighted in the preview.
Preview, copy, and keep editing
Switch the output to Preview to see the Markdown rendered as GitHub would show it, with tables, task lists, and highlighted code. Copy it, download it as a .md file, or open it in the Markdown viewer to edit it with a live side-by-side preview and export it as HTML or PDF. If you paste JSON or HTML into the Markdown viewer itself, it offers the same conversion in place.
Everything in the Text to Markdown Converter
Convert any text to Markdown: HTML, rich text from web pages and Google Docs, JSON, YAML, CSV, XML, or plain text, into clean GitHub-flavored Markdown. Free.
Detects the format
JSON, JSON Lines, YAML, CSV, TSV, XML, HTML, code, or plain text — recognised as you paste, or picked by you.
Paste with formatting
Copy from a web page, Google Docs, or Word: headings, bold, links, lists, and tables come along.
Data as a document
JSON, YAML, and XML become a titled document: a field table, a heading per section, a table per list.
Tables from CSV
CSV and TSV become GitHub tables, with numeric columns right-aligned and pipes escaped.
Live preview
See the Markdown rendered like GitHub, or open it in the Markdown Viewer to keep editing.
Plain text stays plain
Characters that would turn into Markdown syntax are escaped, so the text reads as you wrote it.
Frequently asked questions
Paste the HTML source into the input; it is recognised as HTML and converted. Headings become # headings, bold and italic become ** and *, links and images keep their addresses and titles, nested lists and checkbox lists keep their structure, tables become GitHub-flavored tables, and code blocks keep their language. Scripts, styles, forms, and other page furniture are dropped.
Select the text in Google Docs or Word, copy it, and paste it into the empty input. The clipboard carries the formatting as HTML, and the converter turns it into Markdown: headings, bold, italic, strikethrough, links, bullet and numbered lists, and tables. Google Docs' styled text and Word's list paragraphs are both understood. If you wanted the bare text instead, click Paste as plain text.
Yes. In the Document layout, a name or title becomes the heading, a description the opening paragraph, plain fields a Field / Value table, each nested object a section with its own heading, and each list of records a table. Choose Table to flatten everything into one table with dot-path columns, or List for a nested bullet list. YAML, JSON Lines, and XML convert the same way.
Paste the CSV or TSV. Commas, semicolons, and tabs are recognised, the first row becomes the header, columns that hold only numbers are right-aligned, and pipes inside values are escaped so the table never breaks. Quoted fields with commas or line breaks inside them are read correctly.
Paragraphs and line breaks are kept, lines that start with a bullet such as •, -, or * become a list, numbered lines become a numbered list, indentation becomes nesting, and a short title-like line above a paragraph becomes a heading. Characters that Markdown would read as syntax — a # at the start of a line, an HTML-looking <tag> — are escaped. Turn on Join wrapped lines for text wrapped at a fixed width, such as an email.
Yes. The output is GitHub-flavored Markdown (GFM): pipe tables with alignment, task lists, strikethrough, fenced code with a language, and autolinks. It renders the same on GitHub, GitLab, Bitbucket, Obsidian, Notion, Docusaurus, and most static-site generators.
No. Every operation runs entirely in your browser using client-side JavaScript. Your input is never uploaded, logged, or stored on any server — it never leaves your device.
Yes, completely free with no sign-up required. There are no usage limits, no watermarks, and no premium gate on any feature.
Related tools
Markdown Viewer
Open a .md file or a GitHub README and read it rendered — or write Markdown with a live preview beside it.
CSV to JSON Converter
Convert CSV, TSV, or Excel spreadsheets into a clean JSON array of objects — free and instant.
YAML to JSON Converter
Convert YAML configuration into valid, formatted JSON in one click.
JSON to YAML Converter
Convert JSON into clean, human-friendly YAML in one click.