Markdown Syntax Guide
A comprehensive reference for writing markdown. Covers standard syntax, GitHub Flavored Markdown (GFM) extensions, and platform-specific tips.
Headers
Create headers using # symbols. The number of # symbols determines the heading level (1-6). Always include a space after the # symbols.
# Heading 1
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6Headers are important for document structure and SEO. They also generate entries in MarkdownFTW's Table of Contents dropdown. Use them hierarchically — don't skip from H1 to H4.
Emphasis
Add emphasis with asterisks or underscores:
*italic* or _italic_
**bold** or __bold__
***bold italic*** or ___bold italic___
~~strikethrough~~italic
bold
bold italic
strikethrough
*asterisks* for bold (not italic). MarkdownFTW's Slack export handles this automatically.Lists
Unordered Lists
Use -, *, or + followed by a space:
- First item
- Second item
- Nested item
- Another nested item
- Third itemOrdered Lists
Use numbers followed by a period and space. The actual numbers don't matter — markdown auto-numbers them:
1. First item
2. Second item
3. Third item
1. Nested ordered item
2. Another nested itemMixed Lists
You can nest ordered lists inside unordered lists and vice versa:
- Unordered item
1. Ordered sub-item
2. Another ordered sub-item
- Another unordered itemLinks
[Link text](https://example.com)
[Link with title](https://example.com "Hover text")
<!-- Autolinks -->
<https://example.com>
<!-- Reference-style links -->
[Example][1]
[1]: https://example.com[text](url) to text (url) so the URL is still visible.Images
Images use the same syntax as links but with an exclamation mark prefix:

The alt text is important for accessibility — it describes the image for screen readers and displays when the image can't load.
Code
Inline Code
Wrap text in backticks for inline code:
Use the `console.log()` function to debug.Use the console.log() function to debug.
Code Blocks
Use triple backticks with an optional language identifier for syntax highlighting:
```javascript
function greet(name) {
return `Hello, ${name}!`;
}
```Popular languages for syntax highlighting include: javascript, typescript, python, rust, go, java, css, html, bash, json, yaml, sql, and many more.
Blockquotes
Prefix lines with > for blockquotes:
> This is a blockquote.
> It can span multiple lines.
>
> > Nested blockquotes work too.This is a blockquote. It can span multiple lines.
Nested blockquotes work too.
> prefix. Reddit uses the same syntax. Most platforms support single-level blockquotes.Tables
Tables are a GitHub Flavored Markdown (GFM) extension. Use pipes | and hyphens -:
| Feature | Free | Pro |
|---------|------|-----|
| Format exports | 2 | Unlimited |
| Platform exports | Unlimited | Unlimited |
| Inline editing | No | Yes |
| Price | $0 | $4.99/mo |Align columns with colons in the separator row:
| Left | Center | Right |
|:-----|:------:|------:|
| L | C | R |Task Lists
Create checkboxes with - [ ] and - [x]:
- [x] Write the markdown guide
- [x] Add syntax highlighting
- [ ] Publish to production
- [ ] Celebrate 🎉- Write the markdown guide
- Add syntax highlighting
- Publish to production
- Celebrate 🎉
Task lists are a GFM extension widely supported on GitHub, GitLab, and other platforms.
Horizontal Rules
Create a horizontal divider with three or more hyphens, asterisks, or underscores:
---
***
___Useful for separating sections in long documents. All three syntaxes produce identical output.
Line Breaks
In markdown, a single newline doesn't create a line break — you need either a blank line (for a new paragraph) or two trailing spaces at the end of a line (for a line break within a paragraph):
First line with two trailing spaces
Second line (same paragraph)
New paragraph here.Some renderers also support using a backslash \ at the end of a line for a hard line break.
Footnotes
Add footnotes with bracket notation:
Here's a statement that needs a source[^1].
And another claim[^note].
[^1]: This is the footnote content.
[^note]: Footnotes can have any identifier.Footnotes are rendered at the bottom of the document with back-links. They're supported in GFM and most extended markdown renderers. MarkdownFTW renders footnotes in the preview and preserves them in HTML and PDF exports.
Math (KaTeX)
MarkdownFTW supports mathematical notation using KaTeX syntax:
Inline Math
The quadratic formula is $x = \frac{-b \pm \sqrt{b^2-4ac}}{2a}$Display Math
$$
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
$$Math rendering uses the KaTeX library, which supports most LaTeX math commands. Inline math uses single dollar signs $...$, and display (block) math uses double dollar signs $$...$$.
Mermaid Diagrams
Create diagrams using Mermaid syntax inside a code block with the mermaid language identifier:
```mermaid
graph TD
A[Start] --> B{Is it working?}
B -->|Yes| C[Great!]
B -->|No| D[Debug]
D --> B
```Mermaid supports flowcharts, sequence diagrams, class diagrams, Gantt charts, pie charts, and more. MarkdownFTW renders Mermaid diagrams in the live preview.
Escaping Characters
Use a backslash \ to display literal characters that would otherwise be interpreted as markdown:
\*Not italic\*
\# Not a header
\[Not a link\](url)
\`Not code\`Characters you can escape: \\ \` * _ {} [] () # + - . ! |
Platform-Specific Tips
Different platforms render markdown differently. Here's what to know:
🎮 Discord
Supports bold, italic, strikethrough, code blocks (with syntax highlighting), blockquotes, spoiler tags (||text||), and masked links. Does NOT support headers, images, tables, or task lists in chat messages.
💼 Slack
Uses *bold* (not **bold**), _italic_,~strikethrough~, and `code`. Supports blockquotes, ordered/unordered lists, and links. Does NOT support headers, tables, or images in messages.
Supports most standard markdown including headers, bold, italic, links, images, code blocks, blockquotes, tables, and superscript (^text). Uses two newlines for paragraph breaks.
✈️ Telegram
Supports bold, italic, underline, strikethrough, code, code blocks, spoilers, and links. Uses HTML-style syntax or MarkdownV2 syntax. No headers, tables, or images in markdown.
Very limited: *bold*, _italic_, ~strikethrough~, and `code`. No links, headers, tables, images, or code blocks. MarkdownFTW converts unsupported elements to plain text.
🏢 Teams
Supports bold, italic, strikethrough, code, code blocks, links, lists, blockquotes, and tables. Uses standard markdown syntax for most elements. Headers render in the compose box but may display differently in chat.
🐙 GitHub
Full GFM support: headers, emphasis, lists, links, images, code blocks with syntax highlighting, tables, task lists, footnotes, autolinks, and more. The most complete markdown implementation.
💡 Pro tip: Use MarkdownFTW's platform preview mode to see exactly how your markdown will render on each platform before you copy it. Toggle the platform selector in the preview pane.
Ready to write some markdown?
Try all of these features in MarkdownFTW's live editor — free, no sign-up required.
Open the Editor →