Searchable Markdown reference
Markdown Cheat Sheet
Search 30 working examples, choose where you write, and see what CommonMark, GitHub, Obsidian, Discord, Slack, or Notion supports before you copy.
Interactive reference
Find the syntax that works where you write
Search a task, choose the destination, then copy an example. Partial, unsupported, and unverified entries stay visible so you can see the documented limit or a portable alternative.
Download markdown-cheat-sheet.md →Showing all 30 entries
Compatibility checked 2026-07-21
basics
Paragraphs
Separate paragraphs with a blank line. A single wrapped line usually stays in the same paragraph.
First paragraph.
Second paragraph.First paragraph.
Second paragraph.
Use instead:
basics
Headings
Add one to six hash marks, followed by a space. Chat apps and block editors may support fewer levels.
# Page title
## Section titleUse instead:
text
Bold
Wrap important words in two asterisks. Slack uses one asterisk in its markup mode.
**Important change**Use instead:
text
Italic
Wrap text in one asterisk or underscore. Underscores can be harder to read inside identifiers.
*A small aside*Use instead:
text
Bold and italic
Use three asterisks when text needs both kinds of emphasis. Some message editors require toolbar formatting instead.
***Critical detail***Use instead:
text
Strikethrough
Two tildes are common in GitHub-style Markdown. Slack and Notion use their own single-tilde shortcuts.
~~Old wording~~Use instead:
structure
Block quotes
Start each quoted paragraph with a greater-than sign. Keep a space after the marker for readability.
> A useful constraint beats a vague promise.A useful constraint beats a vague promise.
Use instead:
structure
Unordered lists
Start each item with a hyphen, asterisk, or plus followed by a space. Hyphens are the easiest to scan in source.
- Draft
- Review
- Publish- Draft
- Review
- Publish
Use instead:
structure
Ordered lists
Use a number and period for each step. Many renderers calculate the displayed sequence for you.
1. Draft
2. Review
3. Publish- Draft
- Review
- Publish
Use instead:
structure
Nested lists
Indent child items under their parent. Exact indentation rules vary, so preview deeply nested lists in the target app.
- Release
- Write notes
- Tag version- Release
- Write notes
- Tag version
Use instead:
structure
Task lists
GitHub-style task items add square brackets after a list marker. They are not part of CommonMark.
- [x] Draft
- [ ] Publish- ☑ Draft
- ☐ Publish
Use instead:
code
Inline code
Wrap a short command, filename, or identifier in backticks. Use double backticks when the content contains one backtick.
Run `npm test` before release.Run npm test before release.
Use instead:
code
Fenced code blocks
Put three backticks before and after multi-line code. Keep the fences on their own lines.
```
const ready = true;
```const ready = true;Use instead:
code
Code language labels
Add a language name after the opening fence. The label is portable, but colors depend on the renderer.
```python
print("ready")
```print("ready")CommonMark parses the info string but does not require highlighting.
Use instead:
links
Links
Put the visible label in square brackets and the destination in parentheses.
[Read the guide](https://example.com/guide)Use instead:
links
Autolinks
Angle brackets make a URL or email address an explicit CommonMark autolink. Bare-link detection is renderer-specific.
<https://example.com>Use instead:
links
Reference links
Move repeated destinations to definitions at the end of a document. This keeps long source files easier to edit.
Read the [release notes][notes].
[notes]: https://example.com/releasesRead the release notes.
Use instead:
links
Images
Add an exclamation mark before link syntax. Write useful alt text and use a destination that remains reachable.
Use instead:
structure
Horizontal rules
Put three hyphens on a line by themselves to separate sections. Leave blank lines around the rule.
Before
---
AfterAfter
Use instead:
basics
Hard line breaks
End a line with two spaces before the newline. A backslash works in CommonMark too, but not every editor preserves it.
First line··
Second lineFirst line
Second line
Use instead:
data
Tables
Pipe tables are a GitHub-style extension. Keep the header separator row and preview alignment in the target renderer.
| Status | Owner |
| --- | --- |
| Ready | Sam || Status | Owner |
|---|---|
| Ready | Sam |
Use instead:
basics
Escaping Markdown
Put a backslash before punctuation when you need the marker to appear literally instead of formatting text.
\*Not italic\**Not italic*
Use instead:
code
Raw HTML
CommonMark permits raw HTML, but many hosted platforms sanitize or remove it. Do not use HTML for portable documents.
<kbd>Ctrl</kbd> + <kbd>K</kbd>Use instead:
text
Emoji shortcodes
Colon-wrapped emoji names are a platform extension, not standard Markdown. Available names also vary by workspace.
:rocket: Ship it🚀 Ship it
Use instead:
platform extension
Footnotes
GitHub and Obsidian accept bracketed footnote references. Footnotes are not part of CommonMark.
A checked claim.[^1]
[^1]: The supporting note.A checked claim.1
1. The supporting note.Use instead:
platform extension
GitHub alerts
GitHub alerts extend block quotes with a typed marker. Keep them rare and provide readable quote content as a fallback.
> [!WARNING]
> Back up the file before migration.The content remains a block quote, but the alert label has no special meaning.
Use instead:
platform extension
Obsidian wikilinks
Double brackets link notes inside an Obsidian vault. Use standard Markdown links when portability matters.
Open [[Project plan|the project plan]].Open the project plan.
Use instead:
platform extension
Obsidian callouts
Obsidian turns a typed block quote into a callout and can make it foldable. Other renderers usually show a plain quote.
> [!TIP]- Optional detail
> Keep the portable version nearby.The source remains a readable block quote.
Use instead:
platform extension
Obsidian highlights
Two equals signs highlight text in Obsidian. This syntax is not portable Markdown.
Review the ==breaking change== first.Review the breaking change first.
Use instead:
platform extension
Discord spoilers
Double vertical bars hide text until a Discord reader reveals it. In portable Markdown, write a clearly labeled details section instead.
The result is ||hidden until clicked||.The result is hidden until clicked.
Use instead:
Try a broader term such as heading, table, link, or code.
How to use this Markdown cheat sheet
Start with the destination, not the syntax. A table that works in a GitHub README may turn into plain pipes in a chat message. A pair of double brackets can connect notes in Obsidian but means nothing to a CommonMark renderer. Select the app where the text will be read, then search for the job you need to do.
The compatibility badge answers one narrow question: whether the selected platform documents this exact syntax. Supported means the official source confirms it. Partial means the platform accepts a related form, limits the feature, or turns it into a native block. Not supported is reserved for a documented mismatch. Not verified means the official material does not give enough evidence either way.
Use the Copy button when the source fits your target. If it does not, read the alternative directly below the example. The downloadable Markdown file keeps the source, compatibility summary, and official references together for offline use.
Portable Markdown starts with a small baseline
CommonMark covers the structures most documents need: paragraphs, headings, emphasis, lists, block quotes, code, links, images, thematic breaks, and line breaks. Those features are the safest starting point when the same file must move between repositories, static-site generators, note apps, and document converters.
Extensions solve useful problems, but they narrow portability. Pipe tables and task lists are common in GitHub-style Markdown. Footnotes are available in several writing tools. Alerts, wikilinks, callouts, highlights, and spoilers belong to particular renderers. None of those features is bad; the important part is knowing when the destination owns the behavior.
When you cannot control the renderer, prefer structure over decoration. A short heading travels better than a custom callout. A labeled list travels better than a table in chat. A standard link is safer than a vault-specific wikilink. The source remains readable even when the special rendering disappears.
Common Markdown mistakes and quick fixes
A marker has no space after it
Write # Heading, not #Heading, and - Item, not -Item. Several parsers require the space, and the source is easier to scan with it.
A list continuation is indented at the wrong level
Nested paragraphs, code blocks, and child lists belong under the content of their parent item. If a complex list renders unpredictably, simplify it or preview it in the exact target platform before publishing.
A line break is mistaken for a new paragraph
A blank line creates a paragraph. Two trailing spaces create a hard line break in portable Markdown. Chat editors may use Shift + Enter instead, so copying line-break syntax into a composer can produce a different result.
Raw HTML is treated as portable Markdown
CommonMark permits raw HTML, but hosted platforms often filter tags and attributes. Use HTML only when you control the renderer and sanitization policy. For ordinary documents, prefer Markdown structure.
A platform shortcut is saved as if it were source syntax
Notion and Slack can convert typed markers into native formatting. After conversion, the editor may no longer store the original Markdown characters. That is useful for composing a message, but it is different from rendering a portable .md file.
Move from syntax to a finished result
A cheat sheet is fastest when you already know the outcome you want. For a first document and a more deliberate learning path, open the Markdown Guide. To prepare formatted content for Word, Docs, or a CMS, use the Markdown to Rich Text converter. For source markup, use Markdown to HTML.
Tables have their own editing problems: escaping pipes, keeping column counts consistent, and checking alignment. The Markdown Table Generator handles that work visually, then returns clean source you can test against the selected platform here.
If the destination is a Word document, the Markdown in Word guide compares formatted copy with Pandoc. If your application renders Markdown in Python, the Markdown for Python guide covers parsers, extensions, and sanitization.
Common questions
Frequently asked questions
Is Markdown syntax the same in every app?
No. CommonMark defines a portable baseline, while GitHub, Obsidian, Discord, Slack, and Notion add features or interpret familiar markers differently. Choose your target platform before copying an example.
Why does an entry say Not verified?
It means the platform’s current official documentation does not confirm that exact behavior. MarkdownKit does not turn missing documentation into a claim that the syntax is unsupported.
Can I download the Markdown cheat sheet?
Yes. The direct .md download contains the same 30 syntax entries, compatibility summaries, official sources, and verification date. No email address is required.
Why are unsupported entries still visible?
Seeing the unsupported syntax and its alternative is more useful than having it disappear. Turn on Supported only when you want a shorter list for one platform.
Evidence
Sources and verification
Compatibility and workflow details were last checked on 2026-07-21. Anything we could not confirm is marked “Not verified.”