Markdown Not Rendering Correctly — 9 Fixes That Work
- Most Markdown rendering issues come from 9 common syntax mistakes that are easy to miss in plain text
- Missing blank lines before lists and headings are the #1 cause of broken formatting
- Use a live preview tool to instantly see which elements are broken and where
- Platform-specific Markdown flavors can cause valid syntax to render differently across tools
Table of Contents
Markdown not rendering correctly is almost always caused by a small syntax error — a missing blank line, an extra space, or a slightly wrong character. The problem is that raw Markdown doesn't show you what's wrong until you see the rendered output. Paste your Markdown into a live preview tool and the broken element will be immediately visible.
Below are the 9 most common reasons Markdown stops rendering correctly and the exact fix for each one.
Fix 1 — Missing Blank Lines Before Lists and Headings
This is the most common Markdown rendering problem. Lists, headings, and code blocks all require a blank line above them to render correctly on most platforms.
Broken:
Some paragraph text.
- List item one
- List item two
Fixed:
Some paragraph text.
- List item one
- List item two
Same rule applies to headings: a blank line before #, ##, and ### ensures consistent rendering. In a live preview, you can see exactly which lists render as bullet points and which are treated as plain text continuation.
Fix 2 — Heading Not Rendering (Missing Space After #)
A heading requires a space between the # and the heading text.
Broken: #Heading Text
Fixed: # Heading Text
Some parsers accept the no-space version but many — including GitHub, Reddit, and several documentation tools — require the space. Always add it for maximum compatibility.
Fix 3 — Bold and Italic Formatting Not Appearing
Bold requires two asterisks on each side (**bold**), not one. Italic uses one asterisk (*italic*) or one underscore (_italic_). Mixed or unmatched markers break both.
Common mistakes:
*bold attempt*→ renders as italic, not bold**bold without closing→ the asterisks appear as literal characters** bold with space after opening **→ doesn't render on some parsers
Make sure there's no space between the asterisks and the text they wrap.
Sell Custom Apparel — We Handle Printing & Free ShippingFix 4 — Table Not Rendering (Missing Separator Row)
Markdown tables require exactly three elements: a header row, a separator row of dashes, and one or more body rows. The separator row is the most commonly missed piece.
Broken:
| Column 1 | Column 2 |
| Cell A | Cell B |
Fixed:
| Column 1 | Column 2 |
|----------|----------|
| Cell A | Cell B |
Also check that every row has the same number of columns — an uneven column count will break the table rendering on strict parsers.
Fix 5 — Code Block Not Rendering as Code
Fenced code blocks use three backticks on their own line, before and after the code. Common problems:
- Using tildes (
~~~) instead of backticks — some platforms support this, many don't - Having text on the same line as the opening backticks (other than a language tag)
- Indented code blocks (4 spaces) not working — fenced blocks (triple backticks) are more universally supported
For inline code, wrap the text with single backtick characters on each side. If your inline code contains a backtick itself, use double backticks to wrap it.
Fix 6 — Valid Markdown That Renders Differently on Different Platforms
Not all Markdown parsers behave identically. If your Markdown renders correctly in one place but breaks in another:
- GitHub Flavored Markdown (GFM): Adds support for task lists, strikethrough, and auto-linked URLs. GFM syntax like
- [x] Taskwon't render on platforms that don't support GFM. - Notion: Uses Markdown for input but stores content in its own format — some complex tables and nested lists don't transfer cleanly.
- Confluence: Has its own Markdown flavor. Standard Markdown often imports correctly, but Confluence-specific macros won't translate.
When targeting a specific platform, test your content in a live preview first, then verify in the actual platform. The preview tool helps you isolate pure Markdown rendering from platform-specific behavior.
Find Broken Markdown Instantly — Paste and Preview
Paste your Markdown into the live preview and see exactly which elements are rendering correctly and which ones need fixing. Free, no account.
Open Free Markdown PreviewFrequently Asked Questions
Why does my Markdown look fine in one editor but break on GitHub?
Different platforms use different Markdown parsers with slightly different rules. GitHub uses GitHub Flavored Markdown (GFM), which has stricter requirements for blank lines before lists and code blocks than some editors. Test your content specifically against GFM syntax before pushing.
My list renders as plain text even though the syntax looks right — what's wrong?
Almost certainly a missing blank line above the list. Add one blank line between the paragraph above and the first list item. This is required by the CommonMark specification and by most parsers in strict mode.
How do I quickly find which part of my Markdown is broken?
Paste the full document into a live Markdown preview tool. The broken element will be immediately visible — broken tables show as plain text, missing bold shows as asterisks, and broken code blocks show the raw code without formatting.
Can I use HTML inside Markdown to fix rendering issues?
On most platforms, yes. If a specific Markdown element isn't rendering correctly, you can usually replace it with the equivalent HTML tag. For example, use <strong>text</strong> instead of **text** as a fallback.

