A single newline is not a line break, and that is the whole problem
Type this:
Name: Jamie
Date: 17 Augustand standard markdown renders one line: "Name: Jamie Date: 17 August". Nothing is broken. It is doing exactly what the specification says, and almost everybody who has just started using markdown runs into it.
There are three ways out, and the original one is genuinely awful.
Two trailing spaces
The rule from the original 2004 markdown: end a line with two spaces and you get a break. It works everywhere, and the instruction is two invisible characters.
Which means most code editors strip it when they save, because stripping trailing whitespace is a good habit in every other context. The break vanishes, the document reflows, and there is nothing on screen that could tell you why. This tool counts them so at least you know they are there.
A backslash
End the line with \ instead. It is visible, it is ugly, it survives being saved, and it works in CommonMark and on GitHub alike. If a break genuinely matters, use the backslash.
Turn the setting on
GitHub, GitLab, Slack, Discord and most chat tools treat a single newline as a break, because it is what people expect. It is not CommonMark, so the same text renders differently somewhere stricter, which is why this tool tells you when your document depends on the setting rather than on the markup.
Raw HTML is shown as text, not run
Markdown allows raw HTML and nearly every renderer passes it through untouched. That is fine in your own editor and it is not fine in a preview on a web page, where the markdown might be something somebody sent you: a script tag would simply execute.
There is no sanitiser here because there is nothing to sanitise:
- Every raw HTML token is escaped and displayed as the text you typed.
- Link and image URLs are checked, so
javascript:,data:,vbscript:andfile:are refused rather than rendered as a working link. - The check strips whitespace and HTML entities first, because
java	script:is the standard way around a naive test and a browser still runs it.
Your markdown is not altered. It will behave normally wherever you paste it.
The outline is the fastest check on a long document
Two things go wrong in a document with headings and both look completely normal on the page. Several top-level headings, which leaves a search engine and a screen reader with no clear answer to what the page is about. And a skipped level, jumping from a section straight past the next one, which puts a gap in the structure.
Neither is visible while you are reading. Both are obvious in a list of headings and their levels, which is why it is on the left rather than buried.
The other direction
Pasting from a web page or a document gives you HTML. Converting it back to markdown gets you the structure without the tags, which is what you want before dropping it into a README, a wiki or a static site. Script and style blocks are removed rather than converted into visible source text.
Both directions run on your own machine. Nothing is uploaded, nothing is stored, and there is no account.
Common questions
Why did my two lines run together into one?
Because a single newline is not a line break in standard markdown. It is behaving exactly as specified, which is the most common surprise markdown has. There are three fixes: end the line with two spaces, which works and is invisible; end it with a backslash, which is visible and reliable; or turn on the "single newline is a line break" setting, which is what GitHub and Slack do.
I used two spaces and now the break has disappeared.
Almost certainly an editor stripping trailing whitespace when it saved. Most code editors do it by default, and it is a good habit everywhere except here. The instruction was two invisible characters, so nothing warns you when they go. A backslash at the end of the line does the same job and survives being saved.
What is the difference between CommonMark and GitHub flavoured markdown?
CommonMark is the strict specification. GitHub flavour adds tables, strikethrough, task lists and turning a bare URL into a link, and it treats a single newline as a break. The extras are widely supported, but a strict renderer will show your table as the pipe characters you typed, so check which one the far end uses.
Will raw HTML in my markdown work?
Not in this preview, deliberately. Markdown permits raw HTML and most renderers pass it straight through, which means a script tag inside markdown somebody sent you would execute in your browser. Here it is escaped and shown as text, and link protocols are checked so a javascript: link cannot hide inside an ordinary looking one. Your markdown is unchanged, so it will still work wherever you paste it.
Can I convert HTML back into markdown?
Yes, switch the direction at the top. It is what you want after copying out of a web page or a document: the formatting comes across as markdown rather than as a wall of tags. Script and style blocks are dropped rather than converted into visible source.
What is the outline for?
It is the fastest check on a long document. It shows every heading and its level, so a skipped level or three competing top-level headings is obvious at a glance. Both look completely normal on the page and both make the document harder to navigate for anyone using a screen reader, which moves through a document by heading.
Where does the reading time come from?
Words divided by 238 a minute, which is the average for silent reading of English prose from Brysbaert's 2019 meta-analysis of 190 studies. Most tools round to 200, which is a little pessimistic. Either way it is an average, and technical writing with code in it reads far slower.
Is my text uploaded?
No. Both directions run in your browser on your own machine, so an unreleased README, an internal document or a draft nobody has seen yet is safe to paste. There is no server to send it to and nothing is stored, which means closing the tab is the whole of the deletion. It also keeps working with the network off, and it is the easiest way to satisfy yourself the claim is true instead of taking it on trust.