Converts Markdown to HTML and shows a live preview of the rendered result alongside the markup.
Markdown is parsed and emitted as HTML, then the preview is sanitised before it is displayed: script tags, event handler attributes and javascript: URLs are stripped, because a preview renders whatever the input tells it to and Markdown permits raw HTML by design. The conversion follows the common CommonMark-derived behaviour, which is worth knowing because Markdown is not one specification — tables, task lists, strikethrough and footnotes are extensions, supported in some processors and absent in others, so output that works here may not survive elsewhere unchanged.
Markdown that does not travel
-
Markdown is a family, not a standard:
tables and task lists are extensions. A document relying on them will render differently in a processor that does not implement the same set.
-
The preview is sanitised, the output is not:
anything executable is stripped before display. If you paste the generated HTML into a page, you are responsible for what it contains.
-
Raw HTML passes through:
Markdown allows it deliberately. That is useful and it is also why untrusted Markdown must never be rendered unsanitised.
-
Line breaks are the usual surprise:
a single newline does not produce a break in most processors. Two spaces at the end of a line, or a blank line for a new paragraph, is what works.
Markdown is a family of dialects, not one fixed standard
The [msm_tool slug="markdown-to-html"] follows common CommonMark-derived behaviour, which is worth knowing because CommonMark only specifies the core precisely — tables, task lists, strikethrough and footnotes are all extensions that individual processors choose whether to implement. A document leaning on any of those can render correctly here and differently somewhere else, with both outputs being defensible readings of the same source.
The preview is sanitised; the HTML that gets copied out is not
Script tags, event handler attributes and `javascript:` URLs are all stripped before the live preview renders, because a preview displays whatever the input actually tells it to and Markdown permits raw HTML by design. That stripping applies only to what is shown on screen — the HTML copied out for use elsewhere is unfiltered, so publishing it anywhere untrusted content might reach is a separate responsibility this tool does not take on.
Raw HTML passing through is a feature, not a gap
Markdown deliberately allows embedded HTML to flow straight through into the output, which is genuinely useful for anyone who needs it — and is exactly why Markdown from a source that is not trusted should never be rendered without sanitising it first, since the format itself places no restriction on what that embedded HTML can contain.
Why a single line break quietly disappears
Most Markdown processors read a lone newline as an ordinary space rather than a line break, requiring a genuinely blank line before starting a new paragraph — a common surprise for anyone pasting in text that was originally wrapped by an editor rather than written with Markdown's own conventions in mind. Two trailing spaces at the end of a line, or a backslash, forces an actual break within a single paragraph where one is needed.