The Markdown Guide for Writers

Markdown is the lightweight markup language behind GitHub, Reddit, Discord, Notion, Obsidian, Substack, Ghost, and countless static-site generators. This is the cheat sheet you can bookmark — plus two free converters.

If you write online and you don't know Markdown, you're spending more time formatting than writing. Markdown lets you express headings, bold, italic, lists, links, code, blockquotes, and images using ~6 simple symbols — no menus, no toolbar, no mouse. It's also the universal export/import format between every modern writing tool worth using.

This guide is the syntax cheat sheet, when-to-use-what advice, and links to the two free converters we built to handle migrations between Markdown and HTML.

Syntax cheat sheet

Headings

# H1 (one per page — your title)
## H2 (main sections)
### H3 (subsections)
#### H4
##### H5
###### H6 (rarely needed)

One # per heading level. A single space between the hashes and the heading text. Don't use H1 inside an article — Markdown CMSes use the post title as H1 already.

Bold and italic

**bold**
*italic*
***bold and italic***
~~strikethrough~~ (GitHub-flavored only)

Use ** for bold over __ — it's more legible and works in every flavor. Use * for italic over _ for the same reason.

Links and images

[Visible link text](https://example.com)
![Alt text](https://example.com/image.jpg)
[Reference-style link][1]

[1]: https://example.com

Reference-style links (the bottom form) are useful when the same URL is used multiple times in a long document.

Lists

- Unordered item
- Another item
  - Nested item (2-space indent)

1. Ordered item
2. Second item
   1. Nested ordered item

Pro tip: for ordered lists, you can write 1. for every line — most processors auto-renumber. This makes inserting/removing items far easier.

Code

`inline code` for a quick keyword

```
multi-line code block
```

```python
fenced code block with language
```

The triple-backtick fenced block is universally supported and lets you specify the language for syntax highlighting.

Blockquotes and horizontal rules

> This is a blockquote.
> Multi-line by repeating > on each line.

---  (three or more dashes = horizontal rule)

Tables (GitHub-flavored Markdown)

| Header | Header |
|--------|--------|
| Cell   | Cell   |
| Cell   | Cell   |

Tables are not in original Markdown but are universal in modern flavors (GitHub, Notion, Obsidian, every static-site generator).

Converting between Markdown and HTML

Most CMSes accept either Markdown or HTML, but some force you into one. The two most common workflows:

  • Wrote in Markdown, need HTML for an HTML-only CMS? Use our Markdown → HTML Converter. Paste the Markdown, copy the HTML, drop into your CMS.
  • Migrating content out of an HTML-only CMS into a Markdown system (Notion, Obsidian, GitHub, Hugo)? Use our HTML → Markdown Converter. Strips inline styles, classes, and noise — leaves clean Markdown.

Markdown across the ecosystem

ToolMarkdown flavorNotes
GitHub READMEs / IssuesGitHub Flavored Markdown (GFM)Tables, task lists, autolinking
RedditCommonMark + extensionsSpoiler tags, super/subscript
Discord / SlackSubsetBold/italic/code/strikethrough/blockquote
NotionCommonMark + database extensionsToggle blocks, callouts
ObsidianCommonMark + wikilinks[[wikilinks]], embeds, frontmatter
Substack / GhostCommonMarkStandard CommonMark
Hugo / Jekyll / EleventyCommonMark + frontmatterYAML frontmatter at top of file
iA Writer / Bear / UlyssesCommonMarkWYSIWYG-ish editing

When NOT to use Markdown

Markdown is great for prose and structure. It's a poor fit for:

  • Visual / design-heavy content. If you're laying out a magazine page, use a design tool, not Markdown.
  • Forms, surveys, complex tables, and styled content. Markdown can't express what HTML+CSS can. If you need precise control over fonts, colors, columns, or interactive elements, write HTML directly.
  • Mathematical notation. Some processors support LaTeX inside Markdown ($\\alpha$), but support is inconsistent. For heavy math, a LaTeX-first tool wins.
  • Highly-structured data. Use JSON / YAML / TOML, not Markdown lists.

Frontmatter — the secret weapon

Most static-site generators support YAML frontmatter at the top of every Markdown file. This is metadata about the post — title, date, tags, author — that the generator reads at build time.

---
title: My First Blog Post
date: 2026-05-07
author: Jane Smith
tags: [writing, productivity]
---

# My First Blog Post

Body of the post in Markdown…

Different generators expect different keys. Hugo uses title, date, draft; Jekyll uses layout, title, permalink; Eleventy uses permalink, tags, layout. Read your generator's docs for specifics.

Free tools used in this guide

Frequently asked questions

What's the difference between Markdown and CommonMark?
"Markdown" was originally invented by John Gruber in 2004 with a loose specification. CommonMark (2014) is the formal, unambiguous specification that almost everyone now follows. When you read "Markdown" today, it almost always means CommonMark or a CommonMark superset.
Is GitHub Flavored Markdown different?
Yes — GitHub Flavored Markdown (GFM) is CommonMark plus tables, task lists (- [x]), strikethrough, and autolink. Most modern CMSes follow GFM rather than strict CommonMark, so when in doubt, write GFM.
Why does my Markdown look different in different apps?
Subtle differences in flavor. Tables, footnotes, definition lists, and inline HTML are not in original Markdown — they're flavor extensions. Stick to the cheat sheet above (headings, bold/italic, lists, links, images, code, blockquotes, tables, horizontal rules) and you'll be portable across every modern app.
Can I write HTML inside Markdown?
In most flavors, yes — raw HTML is passed through. This is useful for things Markdown can't do (centered images, custom div classes). Be aware that some processors strip HTML for security; check your CMS's docs.
What's the best Markdown editor?
Depends on workflow. Notion / Obsidian for note-taking. iA Writer / Bear / Ulysses for prose writing. VS Code or Sublime for technical docs. The honest answer is: any text editor with Markdown syntax highlighting works fine.