The Ultimate Markdown Cheatsheet for Developers
Markdown is the de facto standard for writing documentation, README files, blog posts, and technical notes. This cheatsheet covers everything you need to know — from basic syntax to GitHub Flavored Markdown extensions — with copy-ready examples for every feature.
What Is Markdown and Why Do Developers Use It?
Markdown is a lightweight markup language created by John Gruber in 2004. It lets you format plain text using simple, intuitive symbols — no HTML tags, no WYSIWYG editors. The source file stays readable even without rendering, which is why developers love it.
Today Markdown is everywhere: GitHub READMEs, documentation sites (Docusaurus, MkDocs, GitBook), static site generators (Hugo, Jekyll, Astro), note-taking apps (Obsidian, Notion), and even chat platforms like Slack and Discord. Learning Markdown once pays dividends across your entire workflow.
Most flavors of Markdown compile to clean HTML, so anything you write can be published on the web instantly. Combined with its zero-dependency nature and version-control friendliness (plain text diffs beautifully in Git), Markdown is the most practical writing format for software teams.
Headings, Paragraphs, and Text Emphasis
Headings
Use # symbols to create headings. The number of hashes determines the level (1 through 6):
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6Tip: Always leave a blank line before and after headings for maximum compatibility across parsers.
Paragraphs
Paragraphs are separated by one or more blank lines. A single line break within text is usually treated as a space. To force a hard line break, end a line with two or more spaces or use a backslash.
This is the first paragraph.
This is the second paragraph.
This line has a hard break\
right here.Bold, Italic, and Strikethrough
**bold text**
__also bold__
*italic text*
_also italic_
***bold and italic***
~~strikethrough~~Convention: most style guides recommend **bold** and *italic* (asterisks) over underscores for consistency, because underscores inside words can cause parsing issues in some Markdown flavors.
Links and Images
Inline Links
[Link Text](https://example.com)
[Link with Title](https://example.com "Hover title")
// Autolinks
<https://example.com>
<user@example.com>Reference Links
Reference-style links keep your text clean by moving the URL to the bottom of the document:
Check out [FastDevKit][1] for free developer tools.
[1]: https://fastdevkit.com "FastDevKit - Free Developer Tools"Images


// Image with link
[](https://example.com)Code Blocks and Inline Code
Inline Code
Wrap text with single backticks to create inline code:
Use the `console.log()` function to debug.
The `<div>` element is a block container.Fenced Code Blocks with Syntax Highlighting
Use triple backticks with an optional language identifier for syntax-highlighted code blocks:
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
```
```python
def greet(name):
return f"Hello, {name}!"
```
```bash
echo "Hello, World!"
curl -s https://api.example.com | jq '.data'
```Common language identifiers: javascript, typescript, python, bash, json, html, css, sql, go, rust, yaml, diff.
Lists
Unordered Lists
- Item one
- Item two
- Nested item
- Another nested item
- Deeply nested
- Item threeYou can also use * or + instead of -, but stick to one style per document.
Ordered Lists
1. First item
2. Second item
3. Third item
1. Sub-item A
2. Sub-item BThe actual numbers do not matter — Markdown auto-numbers them. Most people use 1, 2, 3 for readability.
Tables
Tables use pipes and hyphens. The second row defines column alignment with colons:
| Feature | Syntax | Renders As |
| ------------ | -------------- | -------------- |
| Bold | `**text**` | **text** |
| Italic | `*text*` | *text* |
| Code | `\`code\`` | `code` |
| Link | `[t](url)` | [t](url) |
// Column alignment
| Left | Center | Right |
| :----------- | :------------: | -------------: |
| aligned left | centered | aligned right |Tip: You do not need to align the pipes perfectly in the source — the renderer handles it. But aligned pipes make the raw Markdown much easier to read and maintain.
Blockquotes
Use the > character to create blockquotes. You can nest them and combine them with other Markdown elements:
> This is a blockquote.
>
> It can span multiple paragraphs.
> Nested blockquotes:
> > Second level
> > > Third level
> **Tip:** You can use *any* Markdown inside blockquotes.Blockquotes are often used for callouts, warnings, and quoting external sources in documentation. GitHub also supports special alert syntax like > [!NOTE], > [!WARNING], and > [!TIP].
GitHub Flavored Markdown (GFM) Extensions
GitHub Flavored Markdown adds several features on top of standard Markdown. These are widely supported by most modern Markdown renderers.
Task Lists
- [x] Write the Markdown cheatsheet
- [x] Add code examples
- [ ] Publish to the blog
- [ ] Share on social mediaEmoji Shortcodes
:rocket: :white_check_mark: :warning: :bug: :sparkles:
:thumbsup: :fire: :star: :heart: :100:Emoji shortcodes work on GitHub, Slack, Discord, and many static site generators. A full list is available at this gist.
Footnotes
Markdown was created by John Gruber[^1] in 2004.
GFM extends the original specification[^2].
[^1]: John Gruber is the author of Daring Fireball.
[^2]: GitHub Flavored Markdown Spec: https://github.github.com/gfm/Autolinked References (GitHub-specific)
// These auto-link on GitHub:
#123 -> links to issue/PR #123
@username -> links to user profile
SHA: a1b2c3d -> links to commit
org/repo#456 -> cross-repo issue referenceMarkdown Across Different Platforms
Not all Markdown is created equal. Different platforms support different features:
| Feature | GitHub | GitLab | Obsidian | Standard MD |
|---|---|---|---|---|
| Task lists | Yes | Yes | Yes | No |
| Footnotes | Yes | Yes | Yes | No |
| Mermaid diagrams | Yes | Yes | Plugin | No |
| Math (LaTeX) | Yes | Yes | Yes | No |
| Wiki links [[]] | No | Yes | Yes | No |
| Alert boxes | Yes | No | Plugin | No |
When writing Markdown for a specific platform, always check its documentation to see which extensions are supported. Stick to standard syntax when you need maximum portability.
Recommended Markdown Tools
- VS Code — Built-in Markdown preview with extensions like Markdown All in One and Markdownlint for linting.
- Obsidian — A powerful knowledge base that uses Markdown files as its native format. Great for notes and documentation.
- Typora — A clean WYSIWYG Markdown editor that renders content in real time as you type.
- StackEdit — An in-browser Markdown editor that syncs with Google Drive and Dropbox.
- Pandoc — A command-line universal document converter. Convert Markdown to PDF, DOCX, HTML, LaTeX, and dozens of other formats.
- FastDevKit Markdown Preview — A free online tool that renders your Markdown in real time with syntax highlighting. No sign-up required.
Related Tools
Preview and convert your Markdown with these free tools:
Try These Tools
Need a form backend for your project?
FormCatch handles form submissions so you don't have to. Free tier included.
Try FormCatch Free →