# Markdown Language Reference

Markdown is a lightweight markup language just like HTML. It is used on many places, for example on GitHub pages in README files. The files often have the extension “.md”. In this blog post, I will give an overview of the most used components used in the Markdown language.

## Introduction

Markdown was created in 2004 by John Gruber in collaboration with Aaron Swartz. The goal of Markdown is clear: “Create an easy-to-read, easy-to-write plain text format, which can be converted (optionally) to structurally valid XHTML (HTML).” That is why Markdown and HTML are closely related. If you already know HTML, it is easy to learn Markdown and vice versa. In the remainder of this blog post, various components are described in the Markdown language.

## Lists

This is an example list:

• Item 1
• Item 2
• Item 3

In Markdown, you can create this list by using the following code:

* Item 1
* Item 2
* Item 3

Instead of *, you can use + or – as well. A numbered (ordered) list can be created as follows:

1. Item 1
2. Item 2
3. Item 3
1. Item 1
2. Item 2
3. Item 3

The following headings show the Markdown code that is used to produce the heading.

# # H1

## ## H2

### ### H3

#### #### H4

##### ##### H5
###### ###### H6

For H1 and H2, you can add an underline by using:

# H1
----

## H2
-----

# H1
====

## H2
=====

## Text decoration

This *italic text* is italic since it is wrapped by a single asterisk.

This **bold** text is bold because it is wrapped by two asterisks.

~~Deleted~~ (or ~~striked~~) text is created by wrapping ~~a text~~ between tildes.

An _underscored text_ is created by wrapping a text using  __underscores_.

[Link to Wikipedia](https://www.wikipedia.org/)

## Code Syntax

Inline code is marked by backticks: var a = 10;. If you need multiple lines of code, you can use 3 backticks (and specify the language of the code for the syntax highlighting):

python
a = 10
b = 20
c = a + b


## Images

Images are very similar to hyperlinks in Markdown:

![Alternative text (when hovered)](https://s3-eu-central-1.amazonaws.com/data-blogger/wp-content/uploads/2016/01/28145734/datablogger-blue.png "Data Blogger logo")

## Supporting IDEs

Some IDEs (Integrated Development Environments) like Pycharm (which is explained in this blog post) or Jupyter have support for Markdown. Most editors of Jetbrains can download a Markdown plugin and Jupyter has build in support. Take a look at Jupyter for example:

Jupyter with Markdown support.

The nice thing about Jupyter (and most other Markdown editors) is that you can see the visual effect of the language without compiling it. After editing, the Markdown cell looks as follows:

Output of Markdown in Jupyter.

Here you can clearly see Markdown in action. It is just a lightweight language which compiles into HTML.

## Conclusion (TL;DR)

This blog posts gives an overview of the Markdown language. For more advanced usage, you should really look into the documentation of Markdown. Some components like tables are not discussed on purpose, since they do not belong to the originally created Markdown language. If you miss any important components which you use a lot, please let me know. Then I will add it to this list. For any questions, feel free to discuss it below.

#### Kevin Jacobs

Kevin Jacobs is a certified Data Scientist and blog writer for Data Blogger. He is passionate about any project that involves large amounts of data and statistical data analysis. Kevin can be reached using Twitter (@kmjjacobs), LinkedIn or via e-mail: kevin8080nl@gmail.com. Want to write for our website? Then check out our write for us page!