How to use this cheat sheet

In short
  • The first table holds the basic syntax: ten elements that every Markdown app supports.
  • The second holds the extended syntax: tables, task lists, footnotes and a few others that most modern apps support.
  • The last section names which platform quietly drops which element.
  • Nothing here needs memorizing. Look things up until you stop needing to.

Read it in the order you will need it

A cheat sheet is for glancing at, not for learning by heart. The two tables sit in the order you will reach for them. Basic syntax comes first, because those ten elements cover well over 90% of what anyone writes in Markdown. Extended syntax comes second, for the day you need a table or a task list.

Learn it faster with the editor open

Keep this page in one tab and our free Markdown editor in another. Copy an example, paste it in, and the live preview renders it at once. Typing a construct three or four times with instant feedback beats reading it thirty times. That is simply how muscle memory works.

Most people use Markdown lightly for a week, then come back here only for the rare stuff like footnotes. If you want the reasoning behind each element instead of just its shape, the full Markdown guide works through everything in depth.

This page prints cleanly, tables and all. A paper copy beside the monitor works better than it sounds, because the answer sits in the corner of your eye instead of one tab switch away.

Tip: Press Ctrl+P, or ⌘P on a Mac, and this page comes out as a tidy two-page reference. Print it once and you will stop searching for the same three symbols every week.

Watch out: When an element refuses to render, suspect spacing before syntax. A missing blank line, or a missing space after a #, causes most of it. Write # Heading, never #Heading.

Illustration of a printed quick-reference card next to a keyboard, with markdown symbols highlighted

Basic syntax - Works in every Markdown app

These ten elements come from John Gruber's original 2004 Markdown design. Every Markdown processor on Earth supports them, so you can use them anywhere without a second thought.

ElementMarkdown syntaxResult
Heading# H1   ## H2   ### H3Section headings, levels 1–6. The space after # is required.
Bold**bold text**bold text
Italic*italicized text*italicized text
Blockquote> a quoted lineAn indented quotation block; stack > lines for multiple paragraphs.
Ordered list1. First item
2. Second item
A numbered list. The numbers you type don't have to be sequential - The renderer counts for you.
Unordered list- First item
- Second item
A bulleted list. * and + work too, but pick one and stay consistent.
Inline code`code`Monospaced code inside a sentence.
Horizontal rule---A divider line across the page (put blank lines above and below it).
Link[title](https://example.com)A clickable link: the text in brackets, the URL in parentheses.
Image![alt text](image.jpg)An embedded image - Identical to a link, plus a leading !.

Two spacing rules that prevent most problems

Nearly every beginner question comes back to whitespace. Put a blank line between paragraphs. Put a space after list markers and after each #. Get those two habits right and the basic syntax behaves itself.

Want one element at a time, with more room to breathe? The syntax hub gives each of them its own reference page.

Extended syntax (GFM and friends)

These elements arrived later, from GitHub Flavored Markdown and other processors. Most modern tools support most of them. Not all tools support all of them, so read the notes below before you lean on the rare ones.

ElementMarkdown syntaxResult
Table| Col A | Col B |
| ----- | ----- |
| cell  | cell  |
A data table. See the complete tables guide for alignment and escaping.
Fenced code block```python
print("hi")
```
A multi-line code block; the language name after the fence enables syntax highlighting.
FootnoteText with a note.[^1]
[^1]: The note itself.
A superscript reference that links to a note at the bottom of the document.
Strikethrough~~mistaken text~~mistaken text
Task list- [x] Done task
- [ ] Open task
A checklist with checkboxes - Interactive on GitHub issues.
Highlight==highlighted==Highlighted text - But note: this is not part of GFM; it works in Obsidian and some note apps only.
Subscript / superscriptH~2~O   x^2^H2O and x2 - Supported by only a few processors; on GitHub use the HTML tags <sub> and <sup> instead.

How much can you trust each one?

Roughly, from safest to shakiest:

  • Safe almost everywhere - Tables, fenced code blocks, strikethrough and task lists. Anything built on GFM renders them, and that is most of the modern web.
  • Usually fine - Footnotes. GitHub, Obsidian and most static site generators handle them. Chat apps and Notion do not.
  • One app only - Highlight, subscript and superscript. Treat them as a local convenience, never as portable Markdown.

Tables break more often than everything else combined, usually for very boring reasons. The tables guide covers alignment, escaping pipes, and the small mistakes that flatten a table into plain text.

What works where: honest compatibility notes

The most common Markdown frustration goes like this: syntax that worked in one app silently does nothing in the next. Here is the honest state of play on the platforms people actually use.

GitHub sets the bar

GitHub is the reference point for extended syntax. In READMEs, issues and pull requests:

  • Works - Tables, fenced code blocks with highlighting, task lists, strikethrough and footnotes.
  • Does not work - Highlight (==text==) and the ~x~ or ^x^ sub and superscript shortcuts.
  • Careful - GitHub reads a single-tilde ~text~ as strikethrough, not as a subscript.
  • Workaround - Use the HTML tags <sub> and <sup> there instead.

Discord and Reddit: the chat rules

Both handle the inline basics and drop most block-level extras.

  • Discord - Bold, italic, strikethrough, inline code, fenced code blocks, blockquotes, and since 2023 headings and bulleted lists in normal messages. No tables, no task lists, no footnotes, and no images by syntax - You attach those instead. Discord also uses __double underscores__ for underline, which is nonstandard.
  • Reddit - The basics plus tables, strikethrough and spoilers (>!spoiler!<, a Reddit-only extension). Footnotes and task lists do not render. Old Reddit handles tables fine; inline images depend on the community.

Notion and Obsidian: the note apps

  • Notion - Treats Markdown as input only. Type # plus a space and you get a heading block, but everything converts to Notion blocks immediately. A pasted Markdown table becomes a Notion table. Footnotes and highlight syntax are not recognized, and exporting back to Markdown is not a perfectly faithful round trip.
  • Obsidian - The most complete of the bunch. Everything in both tables above works, including footnotes and ==highlight==. It adds its own wiki links, [[like this]], which work nowhere else.

If one of those two is your daily driver, we have longer write-ups on Markdown in Notion and Markdown in Obsidian. The platform hub lists the rest.

The safe strategy

Write with basic syntax by default. Reach for GFM extensions when your target is GitHub or a GFM-compatible tool, like this editor. Treat highlight, sub and superscript, and wiki links as app conveniences rather than as Markdown you can move around.

Support data verified

Frequently Asked Questions

Do I need to memorize all of this?

No. Ten elements - Headings, bold, italic, lists, links, code - Cover almost everything you'll write. Use them for a few days in the editor with live preview and they'll stick on their own. Come back here only for the rare stuff.

What's the difference between basic and extended syntax?

Basic syntax is the original 2004 Markdown specification and works in every Markdown app ever made. Extended syntax (tables, task lists, strikethrough, footnotes) was added later by processors like GitHub Flavored Markdown - Widely supported, but not universal.

Why isn't my syntax rendering?

Nine times out of ten it's whitespace: a missing space after # or a list marker, or a missing blank line between blocks. The rest of the time you're using an extended element in an app that doesn't support it - Check the compatibility section above.

Can I print this cheat sheet?

Yes - Just print the page with Ctrl+P / ⌘P. The tables print cleanly and fit on two pages. A paper copy next to your monitor is one of the fastest ways to internalize the syntax.

Keep learning

Try the Editor

Try the Editor