Markdown cheat sheet
The working set of markdown, one page, with the editor right here, read a rule, type it, watch it render. That loop teaches markdown in about ten minutes.
Guide
How to use it
- # Heading to ###### Heading: one hash per level, space after the hashes.
- **bold**, *italic*, `inline code`, ~~struck~~.
- - item for bullets, 1. item for numbered, - [ ] task for checkboxes, blank line before any list.
- [text](https://url) for links,  for images.
- > quote for blockquotes, ``` fences around code blocks, --- alone on a line for a rule.
- Tables: a header row, then | --- | --- |, then data rows, pipes between cells.
Examples
The three rules that fix everything
Markdown’s paragraph, list and heading breaks all want a blank line before them. Ninety per cent of "why is it not rendering" is a missing blank line.
#Heading is text, # Heading is a heading. The same courtesy applies to list markers: -item is text, - item is a bullet.
A table is not a table until the second row is | --- | pipes-and-dashes. Header, separator, data: three-row minimum, and it renders.
Method
How it works
This sheet covers the GitHub-flavoured core, the subset that renders identically on GitHub, GitLab, Discord, Reddit, Notion, static site generators and this editor. Extensions beyond it (footnotes, math, alerts) belong to individual platforms and travel badly.
Markdown’s design goal, per its 2004 origin, was text readable as plain text that also converts to HTML, which is why the syntax reads like things people already typed in email: asterisks, dashes and quotes doing what they look like.
FAQ
Frequently asked questions
How do I force a line break without a new paragraph?
End the line with two spaces, or use a blank line for a proper paragraph. The two-space rule is markdown’s least discoverable feature, now you know it.
How do I show a literal asterisk or hash?
Backslash-escape it: \* and \#. Inside code spans and fences, everything is already literal.
Numbered lists: do the numbers matter?
No, 1. 1. 1. renders as 1. 2. 3., markdown counts for you. Handy when reordering items.
How do I nest lists?
Indent the child two to four spaces under its parent item. Consistency matters more than the exact count.
Bold and italic together?
***three asterisks*** wraps both. Beyond that, restraint is a feature of good documents.
Which flavour should I learn?
Exactly this core. It is the lingua franca, platform extras can be learned the day a platform demands them.
More tools