complete-markdown-cheatsheet
Complete Markdown Cheatsheet
Common Mark Implementation
1. Basic Markdown
1.1. Heading
Support: all markdown flavour Syntaxes
Showcases
h2 Heading
h3 Heading
h4 Heading
h5 Heading
h6 Heading
Syntaxes
Showcases
h1 Heading
h2 Heading
Notes:
Always put a space between
#
and the heading nameHeading with
===
or---
are not recommended
1.2. Paragraphs
Notes:
To create paragraphs, use a blank line to separate one or more lines of text.
Don't ident paragraphs with spaces or tabs
Syntaxes
Showcases
This is the first paragraph.
This is the second paragraph
1.3 Line Break
Notes:
To create a line break, end a line with two or more spaces, and then type return
Or use the
<br>
HTML tag
Syntaxes
Showcases
This is the first line. And this is the second line.
Alternative Syntaxes
Showcases
First line with the HTML tag after. And the next line.
1.4. Emphasis
Syntaxes
Showcases
This is bold text This is bold text This is italic text This is italic text We have bold*italic This text is **really important This text is really important This text is __really important*__ This text is really important**
1.5. Blockquotes
Notes:
Space is needed after the marker
>
;You could just add only one
>
at the first line;Blockquotes can be nested
Blockquotes can contain multiple paragraphs. Add a > between the paragraphs.
Blockquotes can contain other Markdown formatted elements. But not all elements can be used.
Syntaxes
Showcases
Blockquotes can also be nested...
...by using additional greater-than signs right next to each other...
...or with spaces between arrows.
Syntaxes
Showcases
Dorothy followed her through many of the beautiful rooms in her castle.
The Witch bade her clean the pots and kettles and sweep the floor and keep the fire fed with wood.
Syntaxes
Showcases
The quarterly results look great!
Revenue was off the chart.
Profits were higher than ever.
Everything is going according to plan.
1.6. Lists
1.6.1. Unordered
Syntaxes
Showcases
To start a list, there should be an empty line above
Create a list by starting a line with
+
,-
, or*
Changing the sign will add a linespace
Add text under an item
This is a text under an item. Notice that there are two spaces at the end above.
Sub-lists are made by indenting 2 spaces:
Item 2a
Item 2b
Item 3
To end a list, there should be one empty line above.
1.6.2. Ordered
Syntaxes
Showcases
Item 1
Item 2
Notice that the sequence number is irrelevant.
Markdown will change the sequence automatically when renderring.
Notice that there are two spaces at the end above to make a new text under item.
Sub-lists are made by indenting 4 spaces
Item 3a
Item 3b
Any number for item 4
Syntaxes
Showcases
will started with offset 57
so it will be 58
1.7. Elements in Lists
Notes:
To add another element in a list while preserving the continuity of the list, indent the element four spaces or one tab
Syntaxes
Showcases
This is the first list item.
Here's the second list item.
I need to add another paragraph below the second list item.
And here's the third list item.
Showcases
This is the first list item.
Here's the second list item.
I need to add another paragraph below the second list item.
And here's the third list item.
Showcases
This is the first list item.
Here's the second list item.
A blockquote would look great below the second list item.
And here's the third list item.
Syntaxes
Showcases
Open the file containing the Linux mascot.
Linux mascot called Tux.
Tux is cool.
But, for text element in ordered list, add five spaces
This is the first list item.
Here's the second list item.
I need to add another paragraph below the second list item.
And here's the third list item.
But, for quote in ordered list, add five spaces
This is the first list item.
Here's the second list item.
A blockquote would look great below the second list item.
And here's the third list item.
But, for code blocks in the lists, add eight spaces or two tabs.
Open the file.
Find the following code block on line 21:
Update the title to match the name of your website.
1.8. Code
Notes:
Inline codes is written inside ` `
or idented by add four spaces or one tab before
Syntaxes
Showcases
This is inline code
.
Syntaxes
Showcases
Syntaxes
Showcases
1.9. Links
Example
This is link This is link with title
Or, directly put the link
https://example.com/ fake@example.com
Or with <>
https://www.markdownguide.org fake@example.com
But, to prevent automated linking
https://www.example.com
Or add emphasize
I love supporting the EFF. This is the Markdown Guide. See the section on code
.
1.11. Reference-style Links
I know Indonesia I also know etymology of Indonesia I knew History of Indonesia
Or, put reference in text
It was a hobbit-hole, and that means comfort.
But, be careful with spaces in the links, put %20
as space
example %20 link example without %20
1.10. Images
Notes:
It is not recommended to use image links in reference format. Some apps will not preview those images.
Specifying size of image is supported only in some extended markdown (such as markdown-it).
Syntaxes
Showcases
Syntaxes
Showcases
1.11. Escaping Characters
Note:
add a backslash
\
in front of the character.
Example
* star \ backslash itself ` backtick { } curly braces ! exclamation mark
1.12. HTML Code
Example
This word is bold. This word is italic.
1.13. Horizontal Rules
Example
2. Extended Markdown
2.1. Heading ID
Support: Markdown Extra , Maruku, kramdown
Markdown:
Markdown
My Great Heading
In HTML:
My Great Heading
Link to Heading IDs
2.2. Code Fencing and Highlighting
Notes:
We can make block code fences without need to be idented
lang
is optional to specify the language of the code; if not specified, the app won't highlight the code;We need one empty line before
Syntaxes
This is a fenced code block.
Showcases (python
)
Showcases (ruby
)
2.3. Tables
Notes:
we can set alignment in table with a colon (:)
we can add formatting text, links, code and HTML character code, but not: heading, headings, blockquotes, lists, horizontal rules, images, HTML tags, or fenced code
Syntaxes
Showcases
Option
Description
data
path to data files to supply the data that will be passed into templates.
engine
engine to be used for processing templates. Handlebars is the default.
ext
extension to be used for dest files.
Syntaxes
Showcases
Syntax
Description
Test Text is long
Header from
Title
Here's this is
Paragraph
Text
And more
Syntaxes
Showcases
Syntax
Description
Test Text is long
Title
Here's this is
Paragraph
Text
And more
2.4. Footnote
Example: The First Part Here's a simple footnote, and here's a longer one,, and
Example: The Second Part : This is the first footnote. : Here's one with multiple paragraphs. For example like this : code
or code in paragrahps code and codes
Or add inline footnote Another example of footnote 1 link and footnote 2 link. Or to add inline footnote^[Text of inline footnote] definition.
Or duplictade reference This duplicated footnote reference.
and multiple paragraphs. : Another footnote text.
2.4. Strikethrough, Highlighting, Underline
Example of strikethrough strikethrough In HTML: strikethrough
Example of mark/highlighting ==marked text== in HTML: marked text
Example of underline underline in HTML: underline
2.5. Task Lists
Example
2.6. Definition Lists
Example
First Term : This is the definition of the first term.
Second Term : This is one definition of the second term. : This is another definition of the second term.
In HTML:
First TermThis is the definition of the first term.Second TermThis is one definition of the second term.This is another definition of the second term.
Or
Term 1 : Definition 1 with lazy continuation.
Term 2 with inline markup : Definition 2 { some code, part of Definition 2 }
Or in compact style:
Term 1 ~ Definition 1
Term 2 ~ Definition 2a ~ Definition 2b
2.7. Emojies
Emoji can be copy pasted
Gone camping! ⛺ Be back soon. That is so funny! 😂
Or, use markdown
Gone camping! :tent: Be back soon. That is so funny! :joy:
Classic markup: :wink: :crush: :cry: :tear: :laughing: :yum:
Shortcuts (emoticons): :-) :-( 8-) ;)
2.9. Typographic replacements
Example
(c) (C) (r) (R) (tm) (TM) (p) (P) +- test.. test... test..... test?..... test!.... !!!!!! ???? ,, -- --- "Smartypants, double quotes" and 'single quotes'
2.10. Superscript and Subscript
Example Superscript x^2^ In HTML: x2
Example Subscript H~2~O In HTML: H2O
2.11. Inserted Text
Example ++Inserted text++ In HTML: This text has been inserted
2.12. Abbreviations
Example
The "HTML" specification is maintained by the "W3C". [HTML]: Hyper Text Markup Language [W3C]: World Wide Web Consortium
In HTML: The HTML specification is maintained by the W3C.
2.13. HTML Entities and Character Codes
Example
© & ¨ ™ ¡ £ & < > ¥ € ® ± ¶ § ¦ ¯ « · |
Or
X² Y³ ¾ ¼ × ÷ »
Or
18ºC " '
2.14. Latex
Note:
Sometimes with
\(
and\)
brackets
Example
$E=mc^2$
\(\sqrt{3x-1}+(1+x)^2\)
Or, inline
The Gamma function satisfying $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$ is via the Euler integral
2.15. Mentions, Tag, Font Awesome
Note:
with
fa-something
:
Example
This is @mentions This is #tags This is tags This is font awesome :fa-star:
2.16. Diagram
Notes:
Your app should support the specific library or engine to draw the diagram
You should specify particular language of the fenced code block and write the definition of your diagram within it.
2.16.1 Mermaid
Notes:
It's implemented in showdown-mermaid.js
Rendering diagrams of Flowchart or Sequence or Gantt
Using mermaid
Check mermaid doc for more information.
Code inside
{ }
is optional
Syntaxes
Flowchart syntax:
Sequence diagram syntax:
Gantt diagram syntax:
Showcases
Flowchart
```mermaid {"align":"center", "codeblock": true} graph TD; A-->B; A-->C; B-->D; C-->D;
Sequence diagram
```mermaid {"align":"right"} sequenceDiagram participant Alice participant Bob Alice->>John: Hello John, how are you? loop Healthcheck John->>John: Fight against hypochondria end Note right of John: Rational thoughts prevail! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good!
2.16.2 Plantuml
Notes:
It's implemented in showdown-plantuml.js,
Render diagrams of uml,
Using plantuml,
Check plantuml website fpr more information.
Code inside
{ }
is optional
Syntaxes
Showcases
```plantuml {"align":"right"} @startuml participant User
Syntaxes
Showcases
```flow {"align":"center"} st=>start: Start:>https://www.google.com[blank] e=>end:>https://www.google.com op1=>operation: My Operation sub1=>subroutine: My Subroutine cond=>condition: Yes or No?:>https://www.google.com io=>inputoutput: catch something... para=>parallel: parallel tasks
st->op1->cond cond(yes)->io->e cond(no)->para para(path1, bottom)->sub1(right)->op1 para(path2, top)->op1
2.16.4 Graphviz's dot
Notes:
It's implemented in showdown-viz.js
Render diagrams of graphviz's dot
Using viz.js.
Code inside
{ }
is optional
Syntaxes
The \ of json's "engine" field value is 'circo', 'dot', 'neato', 'osage', 'twopi' in syntax language attribute.
Showcases
Dot example with dot engine:
```dot {"engine":"dot", "align":"center"} digraph G { main -> parse -> execute; main -> init; main -> cleanup; execute -> make_string; execute -> printf init -> make_string; main -> printf; execute -> compare; }
2.16.5 Railroad diagrams
Notes:
It's implemented in showdown-viz.js,
Render diagrams of railroad
Using railroad-diagrams.
Code inside
{ }
is optional
Syntaxes
Showcases
```railroad {"align":"center"} Diagram( Optional('+', 'skip'), Choice(0, NonTerminal('name-start char'), NonTerminal('escape')), ZeroOrMore( Choice(0, NonTerminal('name char'), NonTerminal('escape'))))
Showcases
```wavedrom {"align":"center"} {signal: [ {name: 'clk', wave: 'p.....|...'}, {name: 'dat', wave: 'x.345x|=.x', data: ['head', 'body', 'tail', 'data']}, {name: 'req', wave: '0.1..0|1.0'}, {}, {name: 'ack', wave: '1.....|01.'} ]}
2.16.7 Vega and Vega-Lite
Notes:
It's implemented in showdown-vega.js,
Using vega-embed,
Check vega website and vega-lite website for more information.
Code inside
{ }
is optional
Syntaxes
Syntaxes
Showcases
Vega example:
```vega {"align":"center"} { "$schema": "https://vega.github.io/schema/vega/v5.json", "width": 200, "height": 200, "autosize": "none",
"signals": [ { "name": "startAngle", "value": 0, "bind": {"input": "range", "min": 0, "max": 6.29, "step": 0.01} }, { "name": "endAngle", "value": 6.29, "bind": {"input": "range", "min": 0, "max": 6.29, "step": 0.01} }, { "name": "padAngle", "value": 0, "bind": {"input": "range", "min": 0, "max": 0.1} }, { "name": "innerRadius", "value": 0, "bind": {"input": "range", "min": 0, "max": 90, "step": 1} }, { "name": "cornerRadius", "value": 0, "bind": {"input": "range", "min": 0, "max": 10, "step": 0.5} }, { "name": "sort", "value": false, "bind": {"input": "checkbox"} } ],
"data": [ { "name": "table", "values": [ {"id": 1, "field": 4}, {"id": 2, "field": 6}, {"id": 3, "field": 10}, {"id": 4, "field": 3}, {"id": 5, "field": 7}, {"id": 6, "field": 8} ], "transform": [ { "type": "pie", "field": "field", "startAngle": {"signal": "startAngle"}, "endAngle": {"signal": "endAngle"}, "sort": {"signal": "sort"} } ] } ],
"scales": [ { "name": "color", "type": "ordinal", "domain": {"data": "table", "field": "id"}, "range": {"scheme": "category20"} } ],
"marks": [ { "type": "arc", "from": {"data": "table"}, "encode": { "enter": { "fill": {"scale": "color", "field": "id"}, "x": {"signal": "width / 2"}, "y": {"signal": "height / 2"} }, "update": { "startAngle": {"field": "startAngle"}, "endAngle": {"field": "endAngle"}, "padAngle": {"signal": "padAngle"}, "innerRadius": {"signal": "innerRadius"}, "outerRadius": {"signal": "width / 2"}, "cornerRadius": {"signal": "cornerRadius"} } } } ] }
2.16.8 Network Sequence
Notes:
It's implemented in showdown-sequence.js,
Render diagrams of sequence
Using js-sequence-diagrams.
Code inside
{ }
is optional
Syntaxes
The \ of json's "theme" field value is "hand" or "simple" in syntax language attribute;
Showcases
Sequence example with hand theme:
```sequence {"theme":"hand", "align":"center"} Alice->Bob: Hello Bob, how are you? Note right of Bob: Bob thinks Bob-->Alice: I am good thanks!
2.17. Table of Content Generation
Example
[TOC]
Or
[[TOC]]
Or
[[TOC]]
2.18. Admonition
Example
!!! note
2.19. Attributes
Example
item bold red{style="color:red"} in HTML: item bold red
2.13. Custom Containers or Alerts
Notes:
Some engine such as
Markdown-it
, you can add some alert text.Available variants:
Syntaxes
Showcases
::: alert-primary alert-primary :::
::: alert-secondary alert-secondary :::
::: alert-success alert-success :::
::: alert-info alert-info :::
::: alert-warning alert-warning :::
::: alert-danger alert-danger :::
::: alert-light alert-light :::
::: alert-dark alert-dark :::
in HTML
alert-warning
or
alert-info
or
alert-warning
2.14. Comments
[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job.
Last updated