Cheatsheets:Markdown: Difference between revisions
Add ordered-list numbering example, legacy indented-code example, move emphasis/HTML-block notes into their sections, replace <code> with syntaxhighlight inline (via update-page on MediaWiki MCP Server) |
mNo edit summary |
||
| Line 7: | Line 7: | ||
section. | section. | ||
New to Markdown? | New to Markdown? [https://commonmark.org/help/tutorial/ CommonMark interactive tutorial] may interest you. | ||
[https://commonmark.org/help/tutorial/ CommonMark interactive tutorial] | |||
</blockquote> | </blockquote> | ||
Revision as of 15:50, 19 August 2026
Quick reference for smart people — part of our dev cheatsheets collection.
Markdown is plain text with a few markers that a renderer turns into HTML. This page is a syntax reference for CommonMark, the standard. GitHub Flavored Markdown (GFM) extensions are covered in the GFM extensions section.
New to Markdown? CommonMark interactive tutorial may interest you.
Basic example: Pancake recipe
| Markdown source | Compiled to HTML | Rendered in the browser |
|---|---|---|
# Pancakes
A quick pancake recipe for two.
## Ingredients
- 150 g flour
- 250 ml milk
## Steps
1. Mix the flour and milk.
2. Cook the batter in a pan.
|
<h1>Pancakes</h1>
<p>A quick pancake recipe for two.</p>
<h2>Ingredients</h2>
<ul>
<li>150 g flour</li>
<li>250 ml milk</li>
</ul>
<h2>Steps</h2>
<ol type="1">
<li>Mix the flour and milk.</li>
<li>Cook the batter in a pan.</li>
</ol>
|
|
Paragraphs and line breaks
- Two paragraphs must be separated by a blank line.
- A single newline becomes a space when rendered.
- For a hard linebreak within a paragraph, use
\
line one
line two
Rendered:
|
line one\
line two
Rendered:
|
Headings
One to six # markers set the level.
| Source | Level |
|---|---|
# Pancakes |
h1 |
## Ingredients |
h2 |
| ... | ... |
###### Note |
h6 |
A space between the last marker and the text is required:
Wrong (no space) Right #PancakesRendered: the line stays a paragraph and the
#is literal:#Pancakes
# PancakesRendered: a level-1 heading:
Pancakes
Emphasis
| Source | Rendered |
|---|---|
*italic* or _italic_ |
italic |
**bold** or __bold__ |
bold |
***both*** |
both |
Emphasis needs word boundaries — underscores inside a word are literal, not emphasis.
Source
foo_bar_bazrenders as foo_bar_baz, not as "foobarbaz". Fix: use asterisks around whole words instead:*foo bar* baz
Links and images
Inline links take the form [text](URL); images add a ! and an alt text: .
| Source | Rendered |
|---|---|
[CommonMark](https://commonmark.org) |
CommonMark |
 |
Reference-style links separate the link text from the URL: [text][ref] in the text, and the definition [ref]: URL anywhere in the document. Here ... stands for the rest of the document between the two snippets:
| Source | Rendered |
|---|---|
[CommonMark][cm]
...
[cm]: https://commonmark.org
|
CommonMark |
Lists
Unordered markers -, * and + are interchangeable. Ordered lists number from the first item's number, whatever you write:
3. Mix the flour and milk.
4. Cook the batter in a pan.
Rendered:
- Mix the flour and milk.
- Cook the batter in a pan.
The numbering starts at 3, as typed — the first item's number sets the start.
Nest with an indentation:
- fruit
- apple
- pear
- veg
Rendered:
- fruit
- apple
- pear
- veg
A blank line between items makes a loose list — each item is wrapped in a paragraph:
Without (tight) With a blank line (loose) - fruit - vegRendered:
- fruit
- veg
- fruit - vegRendered:
fruit
veg
Code
Inline code — backticks; when the code itself contains a backtick, use two backticks:
| Source | Rendered |
|---|---|
`pip install markdown` |
pip install markdown
|
`` `expr` `` |
`expr`
|
Fenced blocks — three backticks; the word after the opening fence enables syntax highlighting:
```python
print("hi")
```
Rendered:
print("hi")
Legacy syntax: indented code blocks. Four leading spaces also produce a code block, without highlighting:
print("hi")Rendered:
print("hi")This form is not recommended — it is easy to break (a blank line ends it, and the indentation must change inside lists). You may still see it in older documents; use fenced blocks instead.
Blockquotes
A line starting with > is a blockquote; an empty > keeps paragraphs separate inside the quote.
> quoted line
>
> second quoted line
Rendered:
quoted line
second quoted line
Nested quotes — >>:
> outer
>
> > inner
Rendered:
outer
inner
GFM extensions
GitHub Flavored Markdown (GFM) used on GitHub and increasingly elsewhere, extends commonMark syntax with the following additions:
Strikethrough — two tildes:
| Source | Rendered |
|---|---|
~~struck~~ |
Tables
| Left | Center | Right |
|:-----|:------:|------:|
| a | b | c |
When rendered, the first column is left-aligned (:-----), the second center-aligned (:-----:) and the third
right-aligned (-----:):
Left Center Right a b c
Task lists
- [x] mix the batter
- [ ] cook the pancakes
Rendered:
☑ mix the batter
☐ cook the pancakes
Escaping
A backslash makes the next character literal:
| Source | Rendered |
|---|---|
\*not italic\* |
*not italic* |
\# not a heading |
# not a heading |
Markdown inside an HTML block is not parsed — raw HTML passes through untouched.
<div> *bold?* no, raw </div>renders the
*bold?*literally. Fix: don't wrap Markdown in raw HTML at all:*bold?* yes
Further reading
- CommonMark spec — the official standard
- CommonMark interactive tutorial — the recommended tutorial
- GFM spec — tables, task lists, strikethrough
- Markdown Guide — a friendly reference