Markdown Syntax Table
| Element | Markdown syntax |
|---|---|
| Bold | **bold text** |
| Italic | *italic text* |
| Strikethrough | ~~strikethrough~~ |
| Heading 1 | # H1 |
| Heading 2 | ## H2 |
| Heading 3 | ### H3 |
| Blockquote | > quoted text |
| Ordered list | 1. item |
| Unordered list | - item |
| Code inline | `code` |
| Code block | ```language ... ``` |
| Horizontal rule | --- |
| Link | [title](https://url) |
| Image |  |
| Table | | col | col | with --- separator |
| Task list | - [x] done / - [ ] todo |
| Footnote | [^1] and [^1]: note text |
Markdown turns plain text into formatted documents with a handful of punctuation marks - and the syntax is readable even without rendering. This table covers all 17 elements from the Markdown Guide cheat sheet, filterable by category, with click-to-copy syntax.
The three traps: nested lists need four spaces (not tabs), code block fences need a blank line before closing, and the :: compression rule from CSS has no Markdown equivalent - what you type is what you get.
How to use
- Type a keyword to filter by element or syntax - code, table, link, heading.
- Click any syntax cell to copy it into your document.
- Use the category chips to jump to text styling, lists, code, or links and images.
Frequently asked questions
Why do my nested lists render flat?
Nested list items need four spaces of indentation (or one tab) relative to the parent. Two spaces is the most common mistake - GitHub and most renderers require exactly four for unordered lists. If the nested item renders as a sibling, check the indentation first.
How do I make a table in Markdown?
Use pipes for columns and a separator row with at least three dashes: | Col A | Col B | then |---|---| then content rows. Alignment is controlled by colons in the separator: |:---| for left, |:---:| for center, |---:| for right. Not all renderers support tables, but GitHub and CommonMark do.
What is the difference between ``` and ~~~ for code blocks?
Both work as fenced code blocks in most flavours, but triple backticks (```) support syntax highlighting by adding a language name: ```python. Tildes (~~~) are useful when the code itself contains backticks, which would prematurely close a backtick fence.
Can I mix HTML and Markdown?
Yes - most renderers pass raw HTML through, which is useful for Markdown limitations like <details> collapsible sections or complex tables. But inside code blocks, HTML is escaped like everything else. Some flavours also restrict which HTML tags are allowed for security.