Markdown Syntax Guide
Markdown is a way to write formatted text using plain characters. You type **bold**instead of clicking a toolbar, and the text stays readable even before it's rendered. It powers READMEs, GitHub, Reddit, Discord, note apps and most modern blogs. Here's everything you need in one place.
Headings
Prefix a line with # characters — one per level: # Title, ## Section, ### Subsection, down to six. Leave a space after the hashes.
Emphasis
*italic*or_italic_→ italic**bold**or__bold__→ bold~~strikethrough~~→strikethrough
Lists
Unordered lists start each line with -, * or +. Ordered lists use 1., 2., and so on — and Markdown even renumbers for you if you get lazy and write 1. every time. Indent to nest.
Links and images
A link is [text](https://example.com). An image is the same with a leading exclamation mark: . Good alt textmatters for accessibility and SEO, so don't leave it empty.
Code
Wrap inline code in backticks: `const x = 1`. For a block, fence it with triple backticks, optionally naming the language for syntax highlighting:
```js … ```
Blockquotes and rules
Start a line with > for a blockquote. Three or more dashes on their own line (---) draw a horizontal rule to separate sections.
Tables
GitHub-flavoured Markdown adds pipe tables: a header row, a separator row of dashes, then data rows, all separated by |. They're fiddly to type by hand but render into clean HTML tables.
Why Markdown won
Markdown succeeded because it's readable as plain text and converts losslessly to HTML. You write comfortably, store a simple text file that plays nicely with version control, and render it wherever you publish. The catch: some platforms — older CMS boxes, email tools — want raw HTML, not Markdown.
Convert Markdown to HTML
When you need the HTML, paste your Markdown into the Markdown to HTML converterfor a live preview and clean, copyable markup. If you're pasting user-generated content, remember to HTML-encode untrusted text, and check length with the word counter.