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 6

Headers 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.

💡 Platform tip: Discord doesn't support headers in chat messages. MarkdownFTW's Discord export converts headers to bold text instead.

Emphasis

Add emphasis with asterisks or underscores:

*italic* or _italic_
**bold** or __bold__
***bold italic*** or ___bold italic___
~~strikethrough~~
Rendered Output

italic

bold

bold italic

strikethrough

💡 Platform tip: Slack uses single *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 item

Ordered 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 item

Mixed 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 item
💡 Platform tip: Indent nested items with 2-4 spaces. Most platforms support at least one level of nesting.

Images

Images use the same syntax as links but with an exclamation mark prefix:

![Alt text](https://example.com/image.png)
![Alt text](image.png "Optional title")

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.
Rendered Output

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.

💡 Platform tip: Discord supports syntax highlighting in code blocks with the same language identifiers. MarkdownFTW preserves these in Discord export.

Blockquotes

Prefix lines with > for blockquotes:

> This is a blockquote.
> It can span multiple lines.
>
> > Nested blockquotes work too.
Rendered Output

This is a blockquote. It can span multiple lines.

Nested blockquotes work too.

💡 Platform tip: Discord renders blockquotes with the > 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 |
💡 Platform tip: Discord and WhatsApp don't support tables. MarkdownFTW converts tables to formatted text or lists for these platforms.

Task Lists

Create checkboxes with - [ ] and - [x]:

- [x] Write the markdown guide
- [x] Add syntax highlighting
- [ ] Publish to production
- [ ] Celebrate 🎉
Rendered Output
  • 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:

---
***
___
Rendered Output

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.

📱 Reddit

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.

📞 WhatsApp

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 →