Markdown is a lightweight markup language that lets you add formatting to plain text. Created by John Gruber in 2004, it's now the standard for README files, documentation, blog posts, notes, and countless other writing contexts. The key idea is that Markdown is readable as-is — the syntax is intuitive enough that you can understand a document even before it's rendered.

This cheat sheet covers every syntax element you'll use day to day, with the Markdown input on the left and the rendered result described on the right.

Headings

Headings are created with the # character. The number of hashes determines the heading level, from H1 (largest) to H6 (smallest). Always leave a space between the hash and the heading text.

MarkdownRenders as
# Heading 1Large page title (H1)
## Heading 2Section heading (H2)
### Heading 3Sub-section (H3)
#### Heading 4Smaller sub-section (H4)
##### Heading 5Minor heading (H5)
###### Heading 6Smallest heading (H6)

Bold, italic and strikethrough

Emphasis is applied by wrapping text in asterisks or underscores. Asterisks are more universally supported and are the recommended choice.

MarkdownRenders as
**bold text**bold text
*italic text*italic text
***bold and italic***bold and italic
~~strikethrough~~strikethrough

Unordered lists

Create bullet lists with a -, *, or + followed by a space. Nest items by indenting with two or four spaces.

- First item
- Second item
  - Nested item
  - Another nested item
- Third item

Ordered lists

Use numbers followed by a period and a space. The actual numbers don't have to be in order — Markdown renumbers them automatically — but starting with 1. is clearest.

1. First step
2. Second step
3. Third step

Links

Links use the format [link text](URL). You can optionally add a title that appears on hover: [link text](URL "Title"). For bare URLs, wrap in angle brackets: <https://example.com>.

[SmartiTools](https://smartitools.com) Clickable link reading "SmartiTools"
[Docs](https://example.com "Documentation") Link with "Documentation" tooltip on hover

Images

Images follow the same syntax as links, but with an exclamation mark prefix: ![alt text](image-url). The alt text is important for accessibility and is shown when the image fails to load.

![Logo](/images/logo.png) Rendered image with alt text "Logo"

Inline code and code blocks

Wrap a word or phrase in backticks for inline code: `variable`. For multi-line code blocks, use three backticks on their own line. Optionally specify a language after the opening backticks for syntax highlighting.

```javascript
function greet(name) {
  return `Hello, ${name}!`;
}
```
Tip: Language identifiers like javascript, python, bash, sql, and json are widely supported by renderers like GitHub, VS Code, and most documentation platforms.

Blockquotes

Prefix a line with > to create a blockquote. Nest blockquotes by adding more > characters. Blockquotes can contain other Markdown elements like bold text and lists.

> This is a blockquote.
> It can span multiple lines.
>
>> This is a nested blockquote.

Tables

Tables use pipe characters (|) to separate columns and hyphens to create the header separator row. Colons in the separator row control column alignment.

| Name     | Age | City     |
|---------|-----|----------|
| Alice    | 30  | London   |
| Bob      | 25  | New York  |

Use :--- for left-align, ---: for right-align, and :---: for centre-align in the separator row.

Horizontal rules

Create a horizontal dividing line using three or more hyphens, asterisks, or underscores on their own line. Leave a blank line before and after to avoid it being interpreted as a heading.

--- A full-width horizontal rule

Escaping special characters

If you need to display a character that Markdown would normally interpret as formatting — like *, #, [, or ` — prefix it with a backslash.

\*not italic\* *not italic* (literal asterisks)
\# Not a heading # Not a heading (literal hash)

Quick reference summary

ElementSyntax
H1 heading# Heading
Bold**text**
Italic*text*
Strikethrough~~text~~
Inline code`code`
Code block```lang ... ```
Link[text](url)
Image![alt](url)
Blockquote> text
Unordered list- item
Ordered list1. item
Horizontal rule---
Escape character\*
Note: Not all Markdown flavours support every feature. Tables, strikethrough, and syntax-highlighted code blocks are part of GitHub Flavored Markdown (GFM) but may not render in all editors. The core elements — headings, bold, italic, links, and lists — work everywhere.

Write Markdown with a live preview

Type Markdown on the left and see the rendered output instantly on the right. Supports GFM, tables, and syntax highlighting.

Open Markdown Editor