Markdown Cheat Sheet: All 21 Syntax Elements on One Page

A markdown cheat sheet is a single-page reference that pairs each markdown element with its exact syntax, so you can format a document without a trip to the full documentation. This page covers all 21 elements in two tables: the 10 basic elements John Gruber defined in the original 2004 specification, and the 11 extended elements that later flavors such as CommonMark (2014) and GitHub Flavored Markdown (2017) added on top. Every syntax example on this page also works in the online markdown editor, where the live preview shows the rendered result as you type.

Basic syntax

Basic syntax covers the 10 elements from the original 2004 markdown design, and every markdown application renders them identically. These 10 elements handle the bulk of everyday writing: structure comes from headings and lists, emphasis comes from bold and italic, and references come from links and images. If a document uses only the rows in this table, it renders correctly on GitHub, in Obsidian, on Reddit, in Discord, and in any editor built after 2004.

ElementSyntaxRendered result
Heading# H1 / ## H2 / ### H3Section titles at levels 1 to 6; one # per level
Bold**strong words**strong words
Italic*slanted words*slanted words
Blockquote> quoted lineIndented quotation block with a left border
Ordered list1. Step one
2. Step two
Numbered list; numbering renders sequentially
Unordered list- First point
- Second point
Bulleted list; * and + also work as markers
Code`inline code`inline code in a monospace box
Horizontal rule---Full-width divider line between sections
Link[anchor text](https://example.com)Clickable hyperlink labelled "anchor text"
Image![alt description](photo.png)Embedded image with alt text for accessibility

The heading marker needs a space after the final #, and the horizontal rule needs a blank line above it. Those two details cause most basic-syntax rendering failures.

Extended syntax

Extended syntax adds 11 elements that the original 2004 specification never included, and support depends on which markdown flavor an application implements. Tables, fenced code blocks, and task lists arrived with GitHub Flavored Markdown, which GitHub formalised as a spec in 2017. Footnotes, definition lists, and highlight come from other flavors and render in fewer applications.

ElementSyntaxRendered result
Table| Name | Role |
| --- | --- |
| Ada | Engineer |
Grid with a header row and aligned columns
Fenced code block```json
{ "id": 1 }
```
Multi-line code box with optional syntax colouring
FootnoteA claim.[^1]
[^1]: The source.
Numbered reference with a note at the page bottom
Heading ID## Pricing {#pricing}Heading with a custom anchor for direct links
Definition listTerm
: Meaning of the term
Term on one line, indented definition below it
Strikethrough~~old figure~~old figure
Task list- [x] Ship the draft
- [ ] Review edits
Checklist with checked and unchecked boxes
Emoji shortcode:tada:The matching emoji character, 🎉
Highlight==key phrase==Phrase on a coloured background
SubscriptH~2~OH₂O
Superscriptx^2^

Support varies by application: GitHub renders tables, fenced code blocks, task lists, strikethrough, footnotes, and emoji shortcodes but ignores highlight, subscript, and superscript; Obsidian handles tables, footnotes, task lists, strikethrough, and highlight; Discord accepts bold, italic, strikethrough, and code blocks but has no table or footnote support. When a target platform is unknown, the 10 basic elements are the safe set.

How to use this cheat sheet

Find the element in the left column, copy the syntax from the middle column, and replace the placeholder text with your own content. The rendered result column shows what the output looks like, so you can confirm the element matches your intent before you copy it. For anything in the extended table, check the support note first; a footnote that renders on GitHub disappears on Discord.

The fastest way to verify syntax is to paste it into the online markdown editor. The live preview renders each element within milliseconds, so a broken table or an unclosed ** marker shows up immediately. Writers who use markdown daily tend to memorise the basic table within a week; the extended table is the part worth keeping within reach.

Download and print

This cheat sheet fits on one A4 page and is available as a .md file, so you can keep a copy inside your own notes app or print it for your desk. The downloaded file is itself valid markdown, and both tables render correctly in any application that supports GFM tables. Open it in the editor, in Obsidian, or in a GitHub repository and the reference stays formatted.

Frequently asked questions

What is the difference between basic and extended markdown syntax?

Basic syntax means the 10 elements from the original 2004 specification, and extended syntax means the 11 elements that later flavors added. Every markdown application supports the basic set. The extended set depends on the flavor: CommonMark standardised core behaviour in 2014, and GFM added tables, task lists, and strikethrough in its 2017 spec.

Do all markdown applications support extended syntax?

No. Extended syntax support differs by application, and no single app renders all 11 extended elements. GitHub skips highlight and subscript, Discord skips tables and footnotes, and Obsidian covers the widest range of the three. Documents intended for multiple platforms should rely on basic syntax plus GFM tables.

Is markdown hard to learn?

No. Markdown has 21 total elements, and the 10 basic ones cover most documents. A # for headings, ** for bold, and - for lists account for the majority of real-world usage. Most people write fluent markdown after a single session with a live preview editor, because the preview corrects mistakes on the spot.

Try the free online markdown editor

Write markdown with a live side-by-side preview, open .md files, and convert HTML, Word, PDF, and text — right in your browser.

Open the editor

More markdown guides