Fix Markdown Rendering & Preview Errors
Fix Markdown formatting that doesn't render: broken headings, unformatted code blocks, broken lists, link issues, and table alignment problems.
Markdown is forgiving but has quirks around whitespace, blank lines, and code fence variants. Here are the most common Markdown rendering issues and how to fix each one.
Jump to error
Heading `#` not rendered
(No error — # appears as literal text)
Headings require a space between `#` and the text, and the `#` must be at the start of a line with no preceding space.
Step-by-step fix
- 1 Ensure there's a space after `#`: `# Heading` not `#Heading`.
- 2 Ensure the line starts at column 1 (no leading spaces).
- 3 Add a blank line before the heading if it follows a paragraph.
#Title ## Subtitle
# Title ## Subtitle
Code block not syntax-highlighted
(Code appears as plain text, no syntax coloring)
Inline backtick code (`` `code` ``) is for inline snippets. For multi-line blocks, use triple backticks with an optional language identifier.
Step-by-step fix
- 1 Use triple backticks ` ``` ` on their own lines.
- 2 Specify the language after the opening backticks: ` ```python `.
- 3 Ensure no trailing spaces after the opening backtick fence.
- 4 Alternatively, indent with 4 spaces (standard Markdown code block).
`print('hello')`
```python
print('hello')
```
List items not rendered as a list
(Dashes appear as literal dashes, not bullet points)
Lists require a blank line before the first item when following a paragraph. Also, mixed indentation (tabs vs spaces) breaks nested lists.
Step-by-step fix
- 1 Add a blank line between the preceding paragraph and the list.
- 2 Use consistent indentation: 2 or 4 spaces for nested items.
- 3 Avoid mixing tabs and spaces.
Here are items: - First - Second
Here are items: - First - Second
Link renders as raw Markdown text
[Link text](url) appears as literal text
Missing matching brackets, parentheses, or a space between `]` and `(` breaks link syntax.
Step-by-step fix
- 1 Check the format: `[text](url)` — no space between `]` and `(`.
- 2 Ensure the URL has no unescaped spaces (encode them as `%20`).
- 3 For reference links, define the reference at the bottom: `[id]: url`.
[Click here] (https://example.com)
[Click here](https://example.com)
Table renders but columns are misaligned
(Table shows but columns overlap or appear wrong)
The separator row between headers and data must contain at least three dashes `---` per column. Column counts must be consistent.
Step-by-step fix
- 1 Ensure every row has the same number of `|` separators.
- 2 The separator row must use `---`, `---:`, or `:---:` (with optional colons for alignment).
- 3 The pipe `|` at the start and end of rows is optional but must be consistent.
| Name | Age | | Alice | 30 |
| Name | Age | |-------|-----| | Alice | 30 |
Frequently Asked Questions
Why does my Markdown render differently on GitHub vs the preview tool?
GitHub uses GitHub Flavored Markdown (GFM) which adds tables, task lists, and auto-links. The preview tool uses standard CommonMark. For GitHub specifically, test in a gist or repo README.
How do I add a line break without creating a new paragraph?
End a line with two or more spaces, then press Enter. This creates a `
` tag. Alternatively, use `\` at the end of the line (supported in CommonMark).
Related Tools
Try the Markdown Preview now
Free, runs in your browser, no signup required. Learn more about Markdown Preview.
Open Markdown Preview →