January 15, 2025 8 min read MDTools Team

What is Markdown? A Complete Beginner's Guide

Markdown is a lightweight markup language that lets you write formatted documents using plain text. Created in 2004, it has become the de facto standard for documentation, README files, and technical writing across the internet.

The Short Answer — Plain Text with Superpowers

At its core, Markdown is a way to add formatting to plain text. Instead of clicking buttons in a word processor, you use simple punctuation characters to indicate formatting. A # at the start of a line makes a heading. Wrapping text in **double asterisks** makes it bold. A hyphen at the start of a line creates a bullet point.

The big idea is that Markdown text is readable even without rendering. Unlike HTML, which is full of noisy tags, Markdown source looks clean and intentional. When you write # Introduction, it's obvious that's a heading — even before you render it.

A Brief History of Markdown

Markdown was created by John Gruber (of Daring Fireball) in collaboration with Aaron Swartz in 2004. Gruber's goal was simple: create a plain-text writing format that could be converted to valid HTML, but that was also readable as-is in its raw form.

The name "Markdown" is a play on the term "markup" — programming languages like HTML "mark up" text with formatting tags. Markdown goes in the opposite direction, using minimal syntax that stays out of the way.

Over the following decade, Markdown proliferated rapidly. GitHub adopted it for README files and comments. Reddit used it for post formatting. Stack Overflow built its comment system on it. Countless static site generators, note-taking apps, and documentation platforms standardised on Markdown as their input format. In 2014, a group of developers formalised the specification as CommonMark to resolve incompatibilities between various Markdown implementations.

Basic Markdown Syntax with Examples

Here are the most commonly used Markdown elements:

Headings

# Heading 1
## Heading 2
### Heading 3
#### Heading 4

Bold and Italic

**bold text**
*italic text*
***bold and italic***

Lists

- Unordered item
- Another item
  - Nested item

1. First ordered item
2. Second ordered item
3. Third ordered item

Links and Images

[Link text](https://example.com)
![Alt text](image.png)

Inline Code

Use the `print()` function to output text.

Advanced Syntax

Beyond the basics, most Markdown renderers support extended syntax for more complex content:

Tables

| Name    | Role      | Team        |
|---------|-----------|-------------|
| Alice   | Developer | Engineering |
| Bob     | Designer  | Product     |

Code Blocks with Syntax Highlighting

```python
def hello():
    print("Hello, Markdown!")
```

Blockquotes

> This is a blockquote.
> It can span multiple lines.

Task Lists (GitHub Flavored Markdown)

- [x] Completed task
- [ ] Incomplete task
- [ ] Another task

Where is Markdown Used?

Markdown has become nearly ubiquitous in technical workflows. Here are the most common places you'll encounter it:

  • GitHub and GitLab — README files, issues, pull requests, wikis, and comments all use Markdown. Every repository's README.md is rendered as formatted HTML automatically.
  • Notion — The popular productivity app uses a Markdown-inspired syntax for its blocks and exports to Markdown.
  • VS Code — Has built-in Markdown preview. Most developers write their documentation in .md files directly in their editor.
  • Static site generators — Hugo, Jekyll, Gatsby, Eleventy, and MkDocs all use Markdown as their primary content format.
  • Reddit — The old Reddit interface (and some new Reddit features) use Markdown for post and comment formatting.
  • Slack and Discord — Both support a subset of Markdown syntax for message formatting.
  • Documentation platforms — Read the Docs, Gitbook, Confluence (with plugins), and Docusaurus all support Markdown.

Markdown vs Rich Text Editors — When to Use Which

Markdown is not a replacement for Word or Google Docs — it's a complement to them. Here's a quick guide:

Use Markdown when: writing technical documentation, README files, blog posts for static sites, notes that need to be version-controlled, content that will be published on GitHub or a documentation platform, or any situation where portability and plain-text readability matter.

Use a rich text editor (Word, Google Docs) when: collaborating with non-technical colleagues who need to leave comments and tracked changes, creating documents that require precise visual formatting (legal docs, print materials), or delivering final documents to clients who expect .docx format.

Many technical professionals use both — writing in Markdown and then converting to Word for delivery. See our Markdown vs Word comparison for a deeper look at this workflow.

How to Convert Markdown to Other Formats

One of Markdown's greatest strengths is how easy it is to convert to other formats. MDTools provides free browser-based converters for the most common conversions:

All conversions happen in your browser — your content never leaves your device. For a step-by-step walkthrough, read our guide on converting Markdown to Word.

FAQ

Is Markdown a programming language?

No. Markdown is a lightweight markup language — it defines formatting rules for plain text, but it's not a programming language. You cannot write logic, functions, or algorithms in Markdown. It's purely for structuring and formatting text content.

What file extension does Markdown use?

Markdown files typically use the .md extension. You may also encounter .markdown, which is valid but less common. Both extensions are identical in function — .md is preferred because it's shorter to type.

Do I need special software to write Markdown?

No. Any plain text editor works — Notepad, TextEdit, VS Code, Sublime Text, or any other. Many editors have Markdown preview extensions. You can also write Markdown directly in GitHub, Notion, or HackMD without installing anything.

Is Markdown the same as reStructuredText?

No. reStructuredText (RST) is a separate markup language used primarily in the Python ecosystem (e.g., Sphinx documentation). Both serve similar purposes, but have different syntax. Markdown is more widely adopted and generally simpler to learn.

Can I mix HTML in Markdown?

Yes. Most Markdown parsers allow inline HTML. You can use HTML tags like <div>, <span>, <table>, and <br> directly in your Markdown file when you need formatting that Markdown doesn't support natively.