Markdown Cheat Sheet
A searchable reference for CommonMark and GitHub Flavored Markdown syntax. Filter by category or type to find a snippet.
| Markdown | Result |
|---|---|
# Heading 1 | Top level heading (H1). Use one hash followed by a space. |
## Heading 2 | Second level heading (H2). Add a hash for each deeper level. |
### Heading 3 | Third level heading (H3). |
#### Heading 4 | Fourth level heading (H4). |
##### Heading 5 | Fifth level heading (H5). |
###### Heading 6 | Sixth and smallest heading (H6). Seven or more hashes are not a heading. |
===== (under text) | Setext style H1: underline a line of text with equals signs. |
----- (under text) | Setext style H2: underline a line of text with hyphens. |
**bold** | Bold text. Double underscores __bold__ produce the same result. |
*italic* | Italic text. Single underscores _italic_ produce the same result. |
***bold italic*** | Bold and italic combined. |
~~strikethrough~~ | Strikethrough text. GitHub Flavored Markdown extension, not in plain CommonMark. |
> Blockquote | Blockquote. Begin the line with a greater-than sign and a space. |
> > Nested quote | Nested blockquote. Add another greater-than sign for each deeper level. |
--- | Horizontal rule (thematic break). Three or more hyphens, asterisks ***, or underscores ___ alone on a line. |
- Item | Unordered list item using a hyphen marker. |
* Item | Unordered list item using an asterisk marker (same result as a hyphen). |
+ Item | Unordered list item using a plus marker (same result). |
1. Item | Ordered list item. Numbers auto-increment no matter which digits you type. |
1) Item | Ordered list item using a parenthesis instead of a dot. |
3. Item | Start an ordered list at a chosen number (here numbering begins at 3). |
- Nested item | Nest a list by indenting two to four spaces under the parent item. |
- [ ] Task | Unchecked task list item (GitHub Flavored Markdown). |
- [x] Done | Checked task list item (GitHub Flavored Markdown). |
[text](https://example.com) | Inline link with visible text pointing to a URL. |
[text](https://example.com "Title") | Inline link with a title that shows as a hover tooltip. |
<https://example.com> | Autolink: a bare URL in angle brackets becomes clickable. |
<name@example.com> | Email autolink: an address in angle brackets becomes a mailto link. |
 | Image. Same as a link but with a leading exclamation mark; alt is the fallback text. |
 | Image with a title attribute shown on hover. |
[text][ref] | Reference style link that points to a label defined elsewhere in the document. |
[ref]: https://example.com | Reference definition. Place it anywhere; it maps the label to a URL. |
[ref]: https://example.com "Title" | Reference definition with an optional title. |
Text[^1] | Footnote reference (GitHub Flavored Markdown). |
[^1]: Footnote body | Footnote definition, rendered at the bottom of the page (GFM). |
`inline code` | Inline code span. Wrap text in single backticks. |
``code with ` tick`` | Use double backticks so a literal backtick can sit inside the code span. |
``` | Fenced code block. Put three backticks on their own line before and after the code. |
```js | Language-tagged fence enables syntax highlighting (here JavaScript). |
~~~ | Alternate fenced code block using three tildes instead of backticks (CommonMark). |
code (4 spaces) | Indented code block: indent every line by four spaces or one tab. |
| Head A | Head B | | Header row of a table (GitHub Flavored Markdown). |
| --- | --- | | Separator row under the header; it is required to form a table. |
| Cell 1 | Cell 2 | | A normal data row. The outer pipes are optional. |
:--- | Left align a column: put a colon on the left of the separator dashes. |
---: | Right align a column: put a colon on the right of the separator dashes. |
:---: | Center align a column: put a colon on both sides of the separator dashes. |
:tada: | Emoji shortcode renders as an emoji on GitHub. Not part of CommonMark. |
@username | Mention a user or team; GitHub turns it into a link and a notification. |
#123 | Reference an issue or pull request by number within a repository (GitHub). |
owner/repo#123 | Reference an issue or pull request in another repository (GitHub). |
<sub>text</sub> | Raw HTML passthrough. Many renderers allow inline HTML such as sub, sup, or br. |
\*literal\* | Escape a special character with a backslash so it shows literally instead of formatting. |
End line with two spaces | Two trailing spaces at the end of a line force a hard line break. |
Text\ | A backslash at the end of a line also creates a hard line break (CommonMark). |
No syntax matches your search.
This reference runs entirely in your browser. Nothing you type is sent anywhere; open DevTools and watch the Network tab to verify zero requests.
What this tool does
This is a searchable cheat sheet for Markdown, the plain-text formatting syntax used in README files, GitHub issues, documentation, static sites, and countless note-taking apps. Every row pairs the raw Markdown you type with a short plain-English description of the result it produces. The table covers the CommonMark core plus the most common GitHub Flavored Markdown (GFM) extensions, and rows that are GFM-only say so in their description. Type in the filter box or pick a category to narrow down to exactly the snippet you need. The whole dataset is baked into the page, so it works offline and sends nothing anywhere.
How to use it
Start typing in the Filter box. Entering table surfaces the
pipe and alignment syntax; entering bold jumps to emphasis; entering
footnote shows the reference and definition pair. The
category buttons (All, Text & headings, Lists, Links & images,
Code, Tables, GitHub extras) combine with the text filter, so you can pick
Links & images and type ref to isolate reference-style links.
The left column shows the exact characters to type; copy them straight into your editor.
Clear the box to see the full sheet again. Nothing is submitted and there is no result limit.
Common use cases
- Looking up the syntax for a table, task list, or footnote while writing a README or issue.
- Checking whether a feature is standard CommonMark or a GitHub-only extension before you rely on it.
- Remembering how to escape a literal asterisk, hash, or backtick so it does not trigger formatting.
- Teaching a teammate the basics with a single shareable, copy-friendly reference.
- Keeping a quick offline reference open in a tab while you draft docs or comments.
Common pitfalls
- Flavors differ. Tables, task lists, strikethrough, autolinks, and footnotes are GitHub Flavored Markdown, not plain CommonMark. A snippet that renders on GitHub may show as raw text in a stricter parser, so confirm what your target platform supports.
- Lists often need a blank line before them. Many parsers only start a list when a blank line separates it from the preceding paragraph. Without that gap the list markers can render inline as literal text instead of bullet points.
- Special characters need escaping. Characters like * _ # ` and [ ] carry meaning. To show one literally, put a backslash before it (for example \*). Inside code spans and code blocks the characters are already literal.
- Raw HTML support varies. Some renderers pass inline HTML straight through, while others sanitize or strip it for safety. Do not assume a br, sub, or details tag will survive on every platform.
- Trailing-space line breaks are fragile. Ending a line with two spaces forces a break, but the spaces are invisible and editors that trim trailing whitespace silently delete them. A backslash line break or a blank-line paragraph split is more reliable.
Frequently asked questions
- What is the difference between Markdown and GitHub Flavored Markdown?
- CommonMark is the strict, portable core of Markdown: headings, emphasis, lists, links, images, blockquotes, and code. GitHub Flavored Markdown (GFM) is a superset that adds tables, task lists, strikethrough, autolinked URLs, footnotes, and features like mentions and emoji shortcodes. Rows here that are marked GFM may not work in a plain CommonMark renderer.
- How do I make a table in Markdown?
- Tables are a GitHub Flavored Markdown feature. Write a header row wrapped in pipes, then a separator row of dashes like | --- | --- | directly beneath it, then one row of cells per line. Add a colon to the separator to control alignment: :--- for left, ---: for right, and :---: for centered.
- How do I add a line break in Markdown?
- For a new paragraph, leave a blank line between blocks of text. For a hard line break inside the same paragraph, end the line with two trailing spaces, or in CommonMark end it with a backslash. Some renderers also accept a raw HTML br tag.
- How do I show literal asterisks or other special characters?
- Put a backslash before the character to escape it, so \* renders a literal asterisk instead of starting italics. The same trick works for other Markdown characters such as backtick, underscore, hash, and square brackets. Inside a code span or code block, characters are already literal and need no escaping.
- How do I add a code block with syntax highlighting?
- Open a fenced code block with three backticks and immediately write the language name, for example ```js for JavaScript or ```python for Python. Put your code on the following lines and close it with three backticks alone. On platforms that support highlighting, the language tag colors the keywords.
- Does this cheat sheet render or send my text anywhere?
- No. This is a static reference, not a converter. The whole syntax table is baked into the page and every search and filter runs locally in your browser. Nothing is submitted, and you can confirm zero network activity in the DevTools Network tab. To actually convert Markdown, use the linked Markdown to HTML tool.
Cite this tool
For academic, journalistic, or technical references. Pick a format:
Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.