Markdown reference
The fifteen original Markdown elements from John Gruber's Markdown are included (excluding the rules on backslash escapes):
- ATX-style headings
- Setext-style headings
- automatic links
- blockquotes
- emphasis
- hard line breaks with two spaces
- images
- indented blocks of code
- inline HTML
- inline code
- inline-style links
- ordered lists
- reference-style links
- thematic breaks
- unordered lists
along with the following additions:
- admonitions
- attribute lists
- description lists
- fenced blocks of code
- footnotes
- hard line breaks with a backslash
- strikethrough
- tables
Note
- The HTML versions of the Markdown examples were produced with pandoc, except for the admonition and attribute list sections, which were produced with MkDocs, and a result in blocks of code, which was left as raw Markdown in order to produce syntax highlighting. For results with only one paragraph, HTML paragraph tags have been removed.
- The HTML results of the Markdown examples are presented inside admonitions without an icon or title, and with admonitions this is accomplished with an extra nested
<div>
element. To avoid adding extraneous entries to the table of contents93, several heading admonitions contain specially-styled HTML instead of heading elements.
admonition
!!! attention
An admonition interrupts the flow of a document to communicate something contextually significant. Admonitions can be grouped into categories, and are often accompanied by specific icons and colors.
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>An admonition interrupts the flow of a document to communicate something contextually significant. Admonitions can be grouped into categories, and are often accompanied by specific icons and colors.</p>
</div>
Attention
An admonition interrupts the flow of a document to communicate something contextually significant. Admonitions can be grouped into categories, and are often accompanied by specific icons and colors.
An admonition does not have a direct HTML equivalent. Closest in meaning is the <aside>
element.94 95 Admonitions are also supported by reStructuredText, and Wikipedia has them in the form of article message boxes.
Compatibility hack
| **Note:**
|:-
| Because most Markdown implementations do not support admonitions, they can be approximated with tables, although these can only contain inline elements.
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;"><strong>Note:</strong></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">Because most Markdown implementations do not support admonitions, they can be approximated with tables, although these can only contain inline elements.</td>
</tr>
</tbody>
</table>
Note: |
---|
Because most Markdown implementations do not support admonitions, they can be approximated with tables, although these can only contain inline elements. |
Alternatively, a line containing just four spaces can be added to the beginning of an admonition to make all the lines within the admonition render as an indented code block in Markdown implementations that do not support admonitions.
blockquote
> A blockquote is very handy in email to emulate reply text.
> This line is part of the same quote.
Quote break.
> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
<blockquote>
<p>A blockquote is very handy in email to emulate reply text. This line is part of the same quote.</p>
</blockquote>
<p>Quote break.</p>
<blockquote>
<p>This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can <em>put</em> <strong>Markdown</strong> into a blockquote.</p>
</blockquote>
A blockquote is very handy in email to emulate reply text. This line is part of the same quote.
Quote break.
This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can put Markdown into a blockquote.
A blockquote is equivalent to the <blockquote>
(block quotation) element in HTML.
break
hard line break
A hard line break is equivalent to the <br>
(line break) element in HTML.
hard line break with two spaces
Note
Trailing spaces are shown with dots (⋅
).
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is also a separate paragraph, but...⋅⋅
This line is separated by a single newline and two spaces, so it's a separate line in the *same paragraph*.
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
This line is also a separate paragraph, but...
This line is separated by a single newline and two spaces, so it's a separate line in the *same paragraph*.
<p>Here's a line for us to start with.</p>
<p>This line is separated from the one above by two newlines, so it will be a <em>separate paragraph</em>.</p>
<p>This line is also a separate paragraph, but…<br />
This line is separated by a single newline and two spaces, so it's a separate line in the <em>same paragraph</em>.</p>
Here's a line for us to start with.
This line is separated from the one above by two newlines, so it will be a separate paragraph.
This line is also a separate paragraph, but…
This line is separated by a single newline and two spaces, so it's a separate line in the same paragraph.
hard line break with a backslash
Ending a line with a backslash is also possible.\
This is less pretty, but more visible.
Ending a line with a backslash is also possible.<br />
This is less pretty, but more visible.
Ending a line with a backslash is also possible.
This is less pretty, but more visible.
page break
A page break can be indicated in Markdown using inline HTML or LaTeX formatting.
thematic break
Three or more...
---
Hyphens
***
Asterisks
___
Underscores
<p>Three or more…</p>
<hr />
<p>Hyphens</p>
<hr />
<p>Asterisks</p>
<hr />
<p>Underscores</p>
Three or more…
Hyphens
Asterisks
Underscores
A thematic break is equivalent to the <hr>
(horizontal rule) element in HTML.
code
Code blocks are part of the Markdown spec, but syntax highlighting isn't. However, many renderers -- like Github's and Markdown Here -- support syntax highlighting. Which languages are supported and how those language names should be written will vary from renderer to renderer.
block of code
A block of code is equivalent to the <pre>
and <code>
(preformatted code) elements in HTML.99
fenced block of code
Three back-ticks (```
) or three tildes (~~~
) can function as fences for producing one or more lines of code.
```javascript
var s = "JavaScript syntax highlighting";
alert(s);
```
```python
s = "Python syntax highlighting"
print s
```
```
No language indicated, so no syntax highlighting.
But let's throw in a <b>tag</b>.
```
<div class="sourceCode" id="cb1"><pre class="sourceCode javascript"><code class="sourceCode javascript"><a class="sourceLine" id="cb1-1" data-line-number="1"><span class="kw">var</span> s <span class="op">=</span> <span class="st">"JavaScript syntax highlighting"</span><span class="op">;</span></a>
<a class="sourceLine" id="cb1-2" data-line-number="2"><span class="at">alert</span>(s)<span class="op">;</span></a></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode python"><code class="sourceCode python"><a class="sourceLine" id="cb2-1" data-line-number="1">s <span class="op">=</span> <span class="st">"Python syntax highlighting"</span></a>
<a class="sourceLine" id="cb2-2" data-line-number="2"><span class="bu">print</span> s</a></code></pre></div>
<pre><code>No language indicated, so no syntax highlighting.
But let's throw in a <b>tag</b>.</code></pre>
var s = "JavaScript syntax highlighting";
alert(s);
s = "Python syntax highlighting"
print s
No language indicated, so no syntax highlighting.
But let's throw in a <b>tag</b>.
Note
The raw Markdown is indented by a single space to allow nesting of a code block within a code block.
~~~
These fences are more squiggly, but they still work.
~~~
<pre><code>These fences are more squiggly, but they still work.</code></pre>
These fences are more squiggly, but they still work.
indented block of code
A four-space indent produces one or more lines of code.
This formatting syntax works,
but can be a pain to select as raw Markdown
when spanning multiple lines of text.
<pre><code>This formatting syntax works,
but can be a pain to select as raw Markdown
when spanning multiple lines of text.</code></pre>
This formatting syntax works,
but can be a pain to select as raw Markdown
when spanning multiple lines of text.
inline code
Inline `code` has `back-ticks around` it.
Inline <code>code</code> has <code>back-ticks around</code> it.
Inline code
has back-ticks around
it.
Inline code is equivalent to the <code>
(code) element in HTML.
code comment
A code comment can be included in Markdown using HTML formatting.
emphasis
Emphasis, aka italics, with *asterisks* or _underscores_.
Strong emphasis, aka bold, with **asterisks** or __underscores__.
Combined emphasis with **asterisks and _underscores_**.
<p>Emphasis, aka italics, with <em>asterisks</em> or <em>underscores</em>.</p>
<p>Strong emphasis, aka bold, with <strong>asterisks</strong> or <strong>underscores</strong>.</p>
<p>Combined emphasis with <strong>asterisks and <em>underscores</em></strong>.</p>
Emphasis, aka italics, with asterisks or underscores.
Strong emphasis, aka bold, with asterisks or underscores.
Combined emphasis with asterisks and underscores.
Emphasis is equivalent to the <em>
(emphasis) element in HTML, and strong emphasis is equivalent to the <strong>
(strong importance) element in HTML.
footnote
Attention
Unlike most other Markdown elements, a footnote does not have a direct HTML equivalent.96 This means that:
- Markdown offers a more standardized way of creating footnotes than HTML.
- HTML renderings of footnotes will differ significantly between different implementations of Markdown.
inline-style footnote
This style of footnote creates a self-contained footnote beside the text it references.
An inline-style footnote consists of a caret (`^`) outside a pair of square brackets.
It can be created on a single line^[It will be formatted like this.].
<p>An inline-style footnote consists of a caret (<code>^</code>) outside a pair of square brackets. It can be created on a single line<a href="#fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a>.</p>
<section class="footnotes">
<hr />
<ol>
<li id="fn1"><p>It will be formatted like this.<a href="#fnref1" class="footnote-back">↩</a></p></li>
</ol>
</section>
An inline-style footnote consists of a caret (^
) outside a pair of square brackets. It can be created on a single line1.
It will be formatted like this.↩
reference-style footnote
This style of footnote resembles a reference-style link, but works differently. Instead of combining into a hyperlink, the reference becomes a numbered superscript and the link definition becomes a numbered footnote at the end of the page.
The reference identifier[^1] is an string that begins with a caret (`^`).
A number often follows the caret, but other characters are also allowed[^character-limitations].
[^1]: In Python-Markdown, identifiers are called *labels*.
[^character-limitations]:
Not all characters are allowed within the identifier.
Pandoc's Markdown does not allow spaces, tabs, or newlines in the identifier.
<p>The reference identifier<a href="#fn1" class="footnote-ref" id="fnref1"><sup>1</sup></a> is an string that begins with a caret (<code>^</code>). A number often follows the caret, but other characters are also allowed<a href="#fn2" class="footnote-ref" id="fnref2"><sup>2</sup></a>.</p>
<section class="footnotes">
<hr />
<ol>
<li id="fn1"><p>In Python-Markdown, identifiers are called <em>labels</em>.<a href="#fnref1" class="footnote-back">↩</a></p></li>
<li id="fn2"><p>Not all characters are allowed within the identifier. Pandoc's Markdown does not allow spaces, tabs, or newlines in the identifier.<a href="#fnref2" class="footnote-back">↩</a></p></li>
</ol>
</section>
The reference identifier1 is an string that begins with a caret (^
). A number often follows the caret, but other characters are also allowed2.
Attention
Python-Markdown expects an indentation of four spaces (or one tab) for footnotes with multiple blocks.97
heading
Headings can make a long document more readable by dividing it into sections, and the sections can be collected into a table of contents. Most Markdown implementations will assign each heading a unique identifier using the id
attribute so that each section can be directly hyperlinked to with a fragment identifier.
ATX-style heading
The use of number signs (#
) is inspired by the atx markup language created by Aaron Swartz.
# ATX level 1
## ATX level 2
### ATX level 3
#### ATX level 4
##### ATX level 5
###### ATX level 6
<h1 id="atx-level-1">ATX level 1</h1>
<h2 id="atx-level-2">ATX level 2</h2>
<h3 id="atx-level-3">ATX level 3</h3>
<h4 id="atx-level-4">ATX level 4</h4>
<h5 id="atx-level-5">ATX level 5</h5>
<h6 id="atx-level-6">ATX level 6</h6>
ATX level 1
ATX level 2
ATX level 3
ATX level 4
ATX level 5
ATX level 6
Setext-style heading
The use of equality signs (=
) and dashes (-
) is inspired by the Setext markup language by Ian Feldman.
Setext level 1
==============
Setext level 2
--------------
<h1 id="setext-level-1">Setext level 1</h1>
<h2 id="setext-level-2">Setext level 2</h2>
Setext level 1
Setext level 2
image
Here's our logo (hover to see the title text):
Inline-style:

Reference-style:
![alt text][logo]
[logo]: ../Mdwnref.png "Logo Title Text 2"
<p>Here's our logo (hover to see the title text):</p>
<p>Inline-style: <img src="../Mdwnref.png" title="Logo Title Text 1" alt="alt text" /></p>
<p>Reference-style: <img src="../Mdwnref.png" title="Logo Title Text 2" alt="alt text" /></p>
Here's our logo (hover to see the title text):
Inline-style:
Reference-style:
An image is equivalent to the <img>
(image embed) element in HTML.
inline HTML
You can also use raw HTML in your Markdown, and it'll mostly work pretty well.
<figure>
<img src="../Mdwnref.png">
<figcaption>This colorful image could use a caption.<br>
Markdown in HTML does *not* work **very** well.
Use HTML <em>tags</em> <strong>instead</strong>.</figcaption>
</figure>
Markdown in HTML does not work very well.
Use HTML tags instead.
link
A link is equivalent to the <a>
(anchor) element in HTML.
automatic link
A URL in angle brackets will automatically get turned into a link: <https://freedomdefined.org/Definition>.
A URL in angle brackets will automatically get turned into a link: <a href="https://freedomdefined.org/Definition" class="uri">https://freedomdefined.org/Definition</a>.
A URL in angle brackets will automatically get turned into a link: https://freedomdefined.org/Definition.
inline-style link
[I'm an inline-style link](https://freedomdefined.org/Definition), and
[I'm an inline-style link with a title](https://freedomdefined.org/Definition "Definition of Free Cultural Works").
<a href="https://freedomdefined.org/Definition">I'm an inline-style link</a>, and <a href="https://freedomdefined.org/Definition" title="Definition of Free Cultural Works">I'm an inline-style link with a title</a>.
reference-style link
[I'm a reference-style link][with a separate link definition], and
[I'm a reference-style link and definition all in one].
The link definition for a reference-style link is included separately, usually at the bottom of the document.
[with a separate link definition]: https://freedomdefined.org/Definition
[I'm a reference-style link and definition all in one]: https://freedomdefined.org/Definition
<p><a href="https://freedomdefined.org/Definition">I'm a reference-style link</a>, and <a href="https://freedomdefined.org/Definition">I'm a reference-style link and definition all in one</a>.</p>
<p>The link definition for a reference-style link is included separately, usually at the bottom of the document.</p>
I'm a reference-style link, and I'm a reference-style link and definition all in one.
The link definition for a reference-style link is included separately, usually at the bottom of the document.
list
attribute list
An attribute list allows HTML-style attributes to be added to Markdown elements with curly brackets ({}
) and a CSS-like syntax. More specifically:
- The number sign character (
#
) indicates anid
or unique identifier. This can be used to create a hyperlink to a section of an HTML page using a fragment identifier. - The full stop character (
.
) indicates aclass
or identifier that can be applied to multiple elements. With a fenced code block, this can be used to identify what language the code block is written in, which can be used for syntax highlighting, for example:```{.yaml} foo: - bar - baz ```
Note
The raw Markdown is indented by a single space to allow nesting of a code block within a code block.
*This emphasized text*{#foo} will have `foo` as its `id`.
**This strongly emphasized text**{.bar} will have `bar` as its `class`.
<p><em id="foo">This emphasized text</em> will have <code>foo</code> as its <code>id</code>.<br />
<strong class="bar">This strongly emphasized text</strong> will have <code>bar</code> as its <code>class</code>.</p>
This emphasized text will have foo
as its id
.
This strongly emphasized text will have bar
as its class
.
Warning
Some Markdown implementations specify a colon :
immediately following the first curly bracket, but may still work without it.
description list
A description list is made of terms and descriptions
: This is a description, paired with a term.
Each term and its description can represent an [attribute-value pair](https://en.wikipedia.org/wiki/Attribute–value_pair).
Here is an attribute.
: And here is a value.
: It starts with a colon.
: If a value spans multiple lines,
readability is improved by adding indentation
from the second line onward,
but it is not required.
: Values can be separated by blank lines,
and still have the same attribute.
<dl>
<dt>A description list is made of terms and descriptions</dt>
<dd>This is a description, paired with a term.
</dd>
</dl>
<p>Each term and its description can represent an <a href="https://en.wikipedia.org/wiki/Attribute–value_pair">attribute-value pair</a>.</p>
<dl>
<dt>Here is an attribute.</dt>
<dd>And here is a value.
</dd>
<dd>It starts with a colon.
</dd>
<dd>If a value spans multiple lines, readability is improved by adding indentation from the second line onward, but it is not required.
</dd>
<dd><p>Values can be separated by blank lines, and still have the same attribute.</p>
</dd>
</dl>
- A description list is made of terms and descriptions
- This is a description, paired with a term.
Each term and its description can represent an attribute-value pair.
- Here is an attribute.
- And here is a value.
- It starts with a colon.
- If a value spans multiple lines, readability is improved by adding indentation from the second line onward, but it is not required.
Values can be separated by blank lines, and still have the same attribute.
A description list is equivalent to the <dl>
, <dt>
, and <dd>
(description list with one or more terms and descriptions) elements in HTML.
Attention
The HTML elements <dl>
, <dt>
, and <dd>
that make up a description list are inconsistently named across different sources, possibly because they resemble abbreviations.
- The
<dl>
element currently means description list100, but was referred to as a definition list in the HTML 4.01 specification. - The
<dt>
and<dd>
elements mean term and description100, and make up term-description groups.- On Wikipedia,
<dt>
is referred to as a name or (previously) as a definition term, and<dd>
is referred to as a value or (previously) as definition data. - On MDN,
<dd>
is referred to as The Description Details element.
- On Wikipedia,
ordered list
Note
Leading and trailing spaces are shown with dots (⋅
).
1. First ordered list item
2. Another item
⋅⋅⋅⋅* Unordered sub-list.
1. Actual numbers don't matter, just that it's a number
⋅⋅⋅⋅1. Ordered sub-list
4. And another item.
⋅⋅⋅⋅You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces.
⋅⋅⋅⋅
⋅⋅⋅⋅To have a line break without a paragraph, you will need to use two trailing spaces.⋅⋅
⋅⋅⋅⋅Note that this line is separate, but within the same paragraph.
1. First ordered list item
2. Another item
* Unordered sub-list.
1. Actual numbers don't matter, just that it's a number
1. Ordered sub-list
4. And another item.
You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces.
To have a line break without a paragraph, you will need to use two trailing spaces.
Note that this line is separate, but within the same paragraph.
<ol type="1">
<li>First ordered list item</li>
<li>Another item
<ul>
<li>Unordered sub-list.</li>
</ul></li>
<li>Actual numbers don't matter, just that it's a number
<ol type="1">
<li>Ordered sub-list</li>
</ol></li>
<li><p>And another item.</p>
<p>You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces.</p>
<p>To have a line break without a paragraph, you will need to use two trailing spaces.<br />
Note that this line is separate, but within the same paragraph.</p></li>
</ol>
- First ordered list item
- Another item
- Unordered sub-list.
- Actual numbers don't matter, just that it's a number
- Ordered sub-list
And another item.
You can have properly indented paragraphs within list items. Notice the blank line above, and the leading spaces.
To have a line break without a paragraph, you will need to use two trailing spaces.
Note that this line is separate, but within the same paragraph.
Attention
Python-Markdown expects an indentation of four spaces (or one tab) for nested block level elements, which includes lists and sub-lists.98
An ordered list is equivalent to the <ol>
and <li>
(ordered list with one or more list items) elements in HTML.
unordered list
* An unordered list can use asterisks
- Or minuses
+ Or pluses
<ul>
<li>An unordered list can use asterisks</li>
<li>Or minuses</li>
<li>Or pluses</li>
</ul>
- An unordered list can use asterisks
- Or minuses
- Or pluses
An unordered list is equivalent to the <ul>
and <li>
(unordered list with one or more list items) elements in HTML.
strikethrough
A strikethrough uses two tildes. ~~Scratch this.~~
A strikethrough uses two tildes. <del>Scratch this.</del>
Strikethrough uses two tildes. Scratch this.
A strikethrough is equivalent to the <del>
(deleted text) element in HTML.
table
Colons can be used to align columns.
| A table | Is | Cool |
|---------------|:-------------:|------:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |
<table>
<thead>
<tr class="header">
<th>A table</th>
<th style="text-align: center;">Is</th>
<th style="text-align: right;">Cool</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>col 3 is</td>
<td style="text-align: center;">right-aligned</td>
<td style="text-align: right;">$1600</td>
</tr>
<tr class="even">
<td>col 2 is</td>
<td style="text-align: center;">centered</td>
<td style="text-align: right;">$12</td>
</tr>
<tr class="odd">
<td>zebra stripes</td>
<td style="text-align: center;">are neat</td>
<td style="text-align: right;">$1</td>
</tr>
</tbody>
</table>
A table | Is | Cool |
---|---|---|
col 3 is | right-aligned | $1600 |
col 2 is | centered | $12 |
zebra stripes | are neat | $1 |
The table will render correctly even if the raw Markdown does not line up prettily. The rightmost pipe (|
) and any extra spaces can be omitted. Only one dash is required to separate each header cell. You can also use inline Markdown.
| Markdown | Less | Pretty
|-|-|-
| *Still* | `renders` | **nicely**
| 1 | 2 | 3
<table>
<thead>
<tr class="header">
<th>Markdown</th>
<th>Less</th>
<th>Pretty</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><em>Still</em></td>
<td><code>renders</code></td>
<td><strong>nicely</strong></td>
</tr>
<tr class="even">
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
</tbody>
</table>
Markdown | Less | Pretty |
---|---|---|
Still | renders |
nicely |
1 | 2 | 3 |
A table is equivalent to the <table>
(table) element in HTML, and possibly one or more of the following elements:
comparison of Markdown implementations
Beaker Browser Markdown | GitHub Flavored Markdown | GitLab Flavored Markdown | John Gruber's Markdown | Pandoc's Markdown | PyMdown | Python-Markdown | Stack Overflow Markdown | |
---|---|---|---|---|---|---|---|---|
admonition | no | no | no | no | no | no | yes (with extension)72 | no |
blockquote | yes | yes2 | yes21 | yes36 | yes48 | yes | yes | yes80 81 |
break (hard line, with a backslash) | yes | yes1 | no | no | yes (with an extension)47 | no | no | no |
break (hard line, with two spaces) | yes | yes1 | yes20 | yes35 | yes47 | yes68 | yes | yes79 |
break (thematic) | yes | yes19 | yes33 | yes46 | yes67 | yes | yes | yes92 |
code (fenced block) | yes | yes5 | yes24 | no | yes (with extension)51 | yes (with extension)69 | yes (with extension)73 | no |
code (indented block) | yes | yes10 | yes27 | yes37 | yes56 | yes (with extension)69 | yes | yes86 |
code (inline) | yes | yes3 | yes22 | yes38 | yes49 | yes | yes | yes |
emphasis | yes | yes4 | yes23 | yes39 | yes50 | yes | yes | yes82 |
footnote (inline-style) | no | no | no | no | yes (with extension)52 | partial (with extension)70 | no74 | no |
footnote (reference-style) | no | no | yes31 | no | yes (with extension)52 | yes (with extension)69 | yes (with extension)75 | no |
heading (ATX-style) | yes | yes6 | yes25 | yes40 | yes53 | yes | yes | no |
heading (Setext-style) | yes | yes7 | yes25 | yes40 | yes54 | yes | yes | yes83 |
image | yes | yes11 | yes28 | yes42 | yes57 | yes | yes | yes87 |
inline HTML | yes | partial (some tags are filtered out)8 9 | partial (whitelist only)26 | yes41 | yes (with extension)55 | yes | yes | partial (whitelist only)84 85 |
link (automatic) | yes | yes13 14 | no | yes45 | yes59 | yes | yes | yes90 |
link (inline-style) | yes | yes15 | yes29 | yes43 | yes60 | yes | yes | yes88 |
link (reference-style) | yes | yes16 | yes29 | yes43 | yes61 | yes | yes | yes88 |
list (attribute list) | no | no | no | no | partial (with extensions)62 | no | yes (with extension)76 | no |
list (description list) | no | no | no | no | yes (with extension)58 | yes (with extension)69 | yes (with extension)77 | no |
list (ordered list) | yes | yes12 | yes30 | yes44 | yes63 | yes | yes | yes89 |
list (unordered list) | yes | yes12 | yes30 | yes44 | yes64 | yes | yes | yes89 |
strikethrough | yes | yes (with extension)17 | yes32 | no | yes (with extension)65 | yes (with extension)71 | no | no |
table | yes | yes (with extension)18 | yes34 | no | yes (with extension)66 | yes (with extension)69 | yes (with extension)78 | no (by design)85 91 |
licensing
Some rights reserved: CC BY 3.0. Includes significant content from Markdown Cheatsheet on GitHub with changes made, including the following:
Attention
These are just the changes made prior to the first Git commit.
- Changed attribute formatting.
- Removed at least one reference to Markdown Here and Github-flavored Markdown.
- Removed table of contents.
- Removed secton on YouTube videos.
- Substituted the original Markdown Here logo with the Definition of Free Cultural Works logo, which was released under a public domain dedication.
- Tweaked the less pretty Markdown table.
Additional removals
"Markdown Toggle" is your friend.(Technical note: Markdown Here uses GFM line breaks, so there's no need to use MD's two-space line breaks.)(This is contrary to the typical GFM line break behaviour, where trailing spaces are not required.)Markdown Here supports highlighting for dozens of languages (and not-really-languages, like diffs and HTTP headers); to see the complete list, and how to write the language names, see the highlight.js demo page.I recommend only using the fenced code blocks -- they're easier and only they support syntax highlighting.License: CC-BYReferencing a bug by #bugID in your git commit links it to the slip. For example #1.You'll soon learn to get what you want.
Additional substitutions
(In this example, leading and trailing spaces are shown with with dots:Leading and trailing spaces are shown with dots (⋅
)⋅
).<Enter>EnterMy basic recommendation for learning how line breaks work is to experiment and discover -- hit Enter once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), see what happens. You'll soon learn to get what you want.Try experimenting to learn how line breaks work -- hit Enter once (i.e., insert one newline), then hit it twice (i.e., insert two newlines), and see what happens. You'll soon learn to get what you want.Notice the blank line above, and the leading spaces (at least one, but we'll use three here to also align the raw Markdown).Notice the blank line above, and the leading spaces.There must be at least 1 dash separating each header cell. The rightmost pipe (The table will render correctly even if the raw Markdown does not line up prettily. The rightmost pipe (|
) is optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.|
) and any extra spaces can be omitted, and only one dash is required to separate each header cell. You can also use inline Markdown.There must be at least 3 dashes separating each header cell.There must be at least 1 dash separating each header cell.They are an easy way of adding tables to your email -- a task that would otherwise require copy-pasting from another application.They are an easy way of adding tables -- a task that would otherwise require copy-pasting from another application.The outer pipes (|) are optionalThe rightmost pipe (|
) is optionalThis line is only separated by a single newline, so it's a separate line in the same paragraph.This line is separated by a single newline and two spaces, so it's a separate line in the same paragraph.
prior work
- The information on the CSS-like syntax of an attribute list was introduced to me by Cascading Style Sheets§Selector on Wikipedia.
- The bulk of the instructions were introduced to me through Markdown Cheatsheet, part of the Markdown Here wiki on GitHub.
-
https://github.github.com/gfm/#emphasis-and-strong-emphasis ↩
-
https://github.github.com/gfm/#disallowed-raw-html-extension- ↩
-
https://docs.gitlab.com/ee/user/markdown.html#multiline-blockquote ↩
-
https://docs.gitlab.com/ee/user/markdown.html#code-and-syntax-highlighting ↩
-
https://docs.gitlab.com/ee/user/markdown.html#code-and-syntax-highlighting ↩
-
https://docs.gitlab.com/ee/user/markdown.html#code-and-syntax-highlighting ↩
-
https://docs.gitlab.com/ee/user/markdown.html#horizontal-rule ↩
-
https://daringfireball.net/projects/markdown/syntax#blockquote ↩
-
https://daringfireball.net/projects/markdown/syntax#precode ↩
-
https://daringfireball.net/projects/markdown/syntax#header ↩↩
-
https://daringfireball.net/projects/markdown/syntax#autolink ↩
-
Attribute lists are supported only with bracketed spans, fenced divs, fenced code blocks, headings, images, inline code, links using extensions. ↩
-
https://facelessuser.github.io/PyMdown/user-guide/markdown-syntax/#p ↩
-
https://facelessuser.github.io/pymdown-extensions/extensions/extra/ ↩↩↩↩↩
-
Inline-style footnotes can be approximated using the Caret extension to create numbered superscripts and an ordered list. Links between the superscript and footnote will not be available. ↩
-
https://facelessuser.github.io/pymdown-extensions/extensions/tilde/ ↩
-
https://python-markdown.github.io/extensions/fenced_code_blocks/ ↩
-
https://python-markdown.github.io/extensions/definition_lists/ ↩
-
https://stackoverflow.com/editing-help#link-simple-blockquotes ↩
-
https://stackoverflow.com/editing-help#link-advanced-blockquotes ↩
-
https://meta.stackexchange.com/questions/1777/what-html-tags-are-allowed-on-stack-exchange-sites/135909#135909 ↩↩
-
https://dba.meta.stackexchange.com/questions/934/please-can-we-have-markdown-tables-on-dba-se/966#966 ↩
-
https://stackoverflow.com/editing-help#link-horizontal-rules ↩
-
https://github.com/squidfunk/mkdocs-material/issues/179#issuecomment-282027581 ↩
-
https://stackoverflow.com/questions/7579826/which-semantic-html-tag-for-displaying-side-notes-and-admonitions/7579894#7579894 ↩
-
https://stackoverflow.com/questions/7579826/which-semantic-html-tag-for-displaying-side-notes-and-admonitions/8297157#8297157 ↩
-
https://python-markdown.github.io/extensions/footnotes/#syntax ↩
-
https://daringfireball.net/projects/markdown/syntax#precode ↩
-
https://www.w3.org/TR/html5/grouping-content.html#the-dl-element ↩↩