Markdown
What is Markdown?
Markdown is a markup language developed by John Gruber in collaboration with Aaron Swartz in 2004.
We quote the definition of Markdown provided by John Gruber:
Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).
Thus, “Markdown” is two things: (1) a plain text formatting syntax; and (2) a software tool, written in Perl, that converts the plain text formatting to HTML. See the Syntax page for details pertaining to Markdown’s formatting syntax. You can try it out, right now, using the online Dingus.
The advantage of Markdown is to write in plain text without worrying about formatting and therefore without distractions since with markup, and you can enrich your text at any time.
We propose publishing the main Markdown commands on this page (continuously updated).
The Markdown logo (The Markdown Mark) has been designed and realized by Dustin Curtis (https://dustincurtis.com) with the contribution of Mac Tyler (http://mactyler.com).
CommonMark
The CommonMark project arose because the description of Markdown syntax created by John Gruber is not uniquely specified.
There is a lack of a unique specification of Markdown. That has resulted in different implementations over the years, such that not all editors can reproduce the language uniquely.
For these reasons, John MacFarlane (the developer of Pandoc), Martin Woodward and Jeff Atwood - who call themselves a group of Markdown fans - have decided to create the CommonMark project aimed at defining a single Markdown syntax.
We quote what is on the CommonMark website:
There’s no standard test suite for Markdown; MDTest is the closest thing we have. The only way to resolve Markdown ambiguities and inconsistencies is Babelmark, which compares the output of 20+ implementations of Markdown against each other to see if a consensus emerges.
We propose a standard, unambiguous syntax specification for Markdown, along with a suite of comprehensive tests to validate Markdown implementations against this specification. We believe this is necessary, even essential, for the future of Markdown.
The project is genuinely worthy for those who consider Markdown a relevant resource.
We hope developers, especially those dealing with Markdown editor developments, can refer to the CommonMark specifications to have a unique Markdown syntax.
Mermaid
For Mermaid see this post.
Markdown Syntax
Header H1:
# Header H1
or
Header H1
=========
Header H2:
## Header H2
or
Header H1
---------
Header H3:
### Header H3
Header H4:
#### Header H4
Bold
**bold**
or
__bold__
Italic
*Italic**
or
_Italic_
Strikethrough
~~strikethrough~~
Highlight
==highlight==
Superscript
N^4^
or
N<sup>4</sup>
Subscript
H~2~O
or
H<sub>2</sub>O
Link
[link](https://domain.com)
or
[link][1]
[1]: (https://domain.com)
or
<https://domain.com>
if you want to add an attribute
[link](https://domain.com "Write here for an attribute")
Mailto
<name@domain.com>
Images
![text](https://domain.com/image.jpg)
or
[text][1]
[1]: (https://domain.com/image.jpg)
or (centered)
![text](https://domain.com/image.jpg#center)
or (with a description)
![text](https://domain.com/image.jpg "Description")
Blockquotes
> quote
or nested
>> nested quote
Unordered list
* Point
* Point
* Point
or
- Point
- Point
- Point
or
+ Point
+ Point
+ Point
Ordered list
1. First
2. Second
3. Third
or
1) First
2) Second
3) Third
or
1. First
1. Second
1. Third
To-do list
- [x] to do 01
- [ ] to do 02
- [ ] to do 03
Horizontal rule
*** (three consecutive asterisks)
or
--- (three consecutive dashes)
or
___ (three consecutive underscores)
Inline code
`inline code`
or
code block (indented of four spaces)
Fenced Code Block
```
code block
ABC
ABC
```
or
~~~
code block
ABC
ABC
~~~
or (indented of four spaces)
abc
abc
abc
or
```python
print(f"2+2 = {2+2}")
```
Tables
| Column1 | Column2 | Column3 |
| -------- | -------- | -------- |
| One | Two | Three |
| Four | Five | Six |
Footnote
Text where to put the footnote identifier[^1]
[^1]: footnote text
or
Text where to put the footnote label[^label]
[^label]: footnote text
This page is a work-in-progress and therefore, the page may be subject to updates.
Stay tuned!