Markdown Arrows: Symbols, Unicode & HTML Entity Codes
Copy-paste arrow characters, HTML entities, and ASCII alternatives for Markdown
Quick Answer
Markdown has no built-in arrow syntax. There are three ways to get arrows into your documents:
| Method | Syntax | Result | Works On |
|---|---|---|---|
| Unicode | Paste → directly | → | Everywhere |
| HTML Entity | → | → | GitHub, GitLab, VS Code, MDViewer |
| ASCII | --> | --> | Everywhere (literal text) |
Unicode is the most reliable — the arrow character is plain text and renders on every platform. HTML entities are a clean alternative for platforms that support inline HTML. ASCII arrows are human-readable in source but look less polished when rendered.
Copy-Paste Arrow Table
Click any arrow to copy it. The Unicode column gives you the character to paste directly, the HTML Entity column is for platforms that render inline HTML, and ASCII is for plain-text fallbacks.
| Direction | Arrow | Unicode | HTML Entity | ASCII |
|---|---|---|---|---|
| Right | → | → U+2192 | → | --> |
| Left | ← | ← U+2190 | ← | <-- |
| Up | ↑ | ↑ U+2191 | ↑ | ^ |
| Down | ↓ | ↓ U+2193 | ↓ | v |
| Left-Right | ↔ | ↔ U+2194 | ↔ | <--> |
| Double Right | ⇒ | ⇒ U+21D2 | ⇒ | ==> |
| Double Left | ⇐ | ⇐ U+21D0 | ⇐ | <== |
| Double Both | ⇔ | ⇔ U+21D4 | ⇔ | <==> |
| Up-Right | ↗ | ↗ U+2197 | ↗ | — |
| Down-Right | ↘ | ↘ U+2198 | ↘ | — |
| Triangle Right | ▶ | ▶ U+25B6 | ▶ | — |
| Triangle Left | ◀ | ◀ U+25C0 | ◀ | — |
Method 1: Unicode Characters
The simplest approach: paste the arrow character directly into your Markdown. Unicode arrows are plain text, so they work on every platform, in every editor, and survive copy-paste between apps.
Click File → Export → PDF
Data flows from the API ⇒ the cache ⇒ the client.
Click **File** → **Export** → **PDF**
Data flows from the API ⇒ the cache ⇒ the client.
On macOS, press Control + Command + Space to open the emoji picker and search for “arrow”. On Windows, press Win + . (period). You can also copy from the table above.
Method 2: HTML Entities
HTML entities use a named or numeric code that the renderer converts to the arrow character. They keep your source readable and avoid encoding issues with some editors.
Input → Processing → Output
Go back ← or forward →
Input → Processing → Output
Go back ← or forward →
HTML entities work on GitHub, GitLab, VS Code preview, Obsidian, and MDViewer. They do not work in Slack or Discord, which strip HTML tags and entities.
Method 3: ASCII Arrows
ASCII arrows are typed from regular keyboard characters. They are the most portable option and keep your Markdown source readable without special characters, but they render as literal text rather than arrow symbols.
Request --> Server --> Response
A <==> B (bidirectional)
Request --> Server --> Response
A <==> B (bidirectional)
ASCII arrows are a good choice for plain-text README files, commit messages, and code comments where special characters might cause issues.
Arrows in Different Contexts
In tables
Unicode arrows work inside Markdown table cells. HTML entities also work where inline HTML is supported.
| Step | Action |
|---|---|
| 1 | User clicks Submit → |
| 2 | → Server validates input |
| 3 | → Database stores record |
| Step | Action |
|------|--------|
| 1 | User clicks **Submit** → |
| 2 | → Server validates input |
| 3 | → Database stores record |
In process flows
Arrows make text-based flowcharts readable without Mermaid or diagram tools.
Deployment Pipeline
Code → Build → Test → Stage → Production
↓ (on failure)
Rollback
**Deployment Pipeline**
Code → Build → Test → Stage → Production
↓ (on failure)
Rollback
In lists
Arrows work in bullet points and numbered lists, useful for step-by-step instructions.
- Open Settings → General
- Scroll down → Transfer or Reset
- Tap Reset → Reset All Settings
1. Open **Settings** → **General**
2. Scroll down → **Transfer or Reset**
3. Tap **Reset** → **Reset All Settings**
Platform Support
| Platform | Unicode | HTML Entities | ASCII |
|---|---|---|---|
| GitHub | ✅ Yes | ✅ Yes | ✅ Literal text |
| GitLab | ✅ Yes | ✅ Yes | ✅ Literal text |
| VS Code | ✅ Yes | ✅ Yes | ✅ Literal text |
| Obsidian | ✅ Yes | ✅ Yes | ✅ Literal text |
| Slack | ✅ Yes | ❌ No | ✅ Literal text |
| Discord | ✅ Yes | ❌ No | ✅ Literal text |
| MDViewer | ✅ Yes | ✅ Yes | ✅ Literal text |
Unicode arrows are the safest choice — they work on every platform. HTML entities are a reliable alternative everywhere except Slack and Discord, which strip inline HTML. ASCII arrows show as literal text on all platforms, which may be exactly what you want.
FAQ
How do I add an arrow in Markdown?
Markdown has no arrow syntax. You have three options: paste a Unicode arrow character directly (→, ←, ↑, ↓), use an HTML entity (→, ←, ↑, ↓), or type ASCII arrow art (-->, <--, ^, v). Unicode works everywhere because it is plain text. HTML entities work on platforms that allow inline HTML. ASCII arrows are the most portable but look less polished.
What is the Unicode character for a right arrow?
The most common right arrow is → (U+2192, HTML entity →). Other right arrows include ▶ (U+25B6, filled triangle), ⇒ (U+21D2, double arrow), ➜ (U+279C, heavy arrow), and ➡ (U+27A1, right arrow emoji). For Markdown, paste the character directly or use the HTML entity →.
Do arrow HTML entities work on GitHub?
Yes. GitHub renders HTML entities like → (→), ← (←), ↑ (↑), and ↓ (↓) in README files, issues, and pull requests. Unicode arrow characters also work. ASCII arrows like --> render as literal text, not as rendered arrows.
Preview Your Markdown with MDViewer
MDViewer is a native macOS app for reading and previewing Markdown files. Double-click any .md file in Finder and see it rendered instantly — arrows, tables, code blocks, and more. Lite is free; Pro adds editing, Git history, and PDF export.
Requires macOS 13.0 or later. Intel and Apple Silicon.