Markdown is the plain-text formatting syntax behind READMEs, GitHub issues, chat apps, static site generators, and most documentation tools. Its whole appeal is that it's readable even unrendered — but the exact syntax rules are easy to half-remember. Here's the reference version.

Headings

A hash symbol followed by a space creates a heading — one hash for the largest, up to six for the smallest:

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

Bold, Italic, and Strikethrough

  • Bold: wrap text in double asterisks or double underscores — **bold** or __bold__
  • Italic: wrap text in single asterisks or underscores — *italic* or _italic_
  • Strikethrough (GFM only): wrap text in double tildes — ~~strikethrough~~

Lists

Unordered lists use a dash, asterisk, or plus sign followed by a space. Ordered lists use a number followed by a period — the actual numbers don't need to be sequential, Markdown renumbers them automatically:

- First item
- Second item

1. First step
2. Second step
Tip: Nest a list item by indenting it with two or four spaces (implementations vary) under its parent item.

A link wraps the display text in square brackets, immediately followed by the URL in parentheses. An image uses the same syntax with an exclamation point in front:

[Fixoona](https://fixoona.com)
![alt text](image.jpg)

Code

Inline code uses single backticks: `like this`. A multi-line code block uses triple backticks on their own line before and after the code, optionally followed by a language name for syntax highlighting:

```js
function hello() {
  return "hi";
}
```

Tables

Tables are a GFM addition, not part of core Markdown. Columns are separated by pipes, and a dash-based separator row under the header defines the table structure:

| Name  | Role   |
|-------|--------|
| Ada   | Coder  |
| Grace | Coder  |

Converting Markdown to HTML

To see exactly how a piece of Markdown will render — including GFM extras like tables and strikethrough — paste it into our free Markdown to HTML tool. It renders a live preview side-by-side with your source, and lets you copy the output as raw HTML or as rich text.

FAQ

What's the difference between CommonMark and GitHub Flavored Markdown (GFM)? CommonMark is a strict, standardized specification of core Markdown syntax — headings, emphasis, lists, links, and code. GFM builds on top of CommonMark and adds extra features that aren't part of the original syntax, most notably tables, strikethrough text, automatic linking of raw URLs, and task list checkboxes. Most modern tools (GitHub, GitLab, many note apps) support GFM rather than plain CommonMark.

How do I create a line break without starting a new paragraph? End the line with two or more trailing spaces before the line break, or use an explicit <br> HTML tag. A single line break in the source Markdown is treated as a space and gets merged into the same paragraph — this trips up a lot of people writing Markdown for the first time, since it behaves differently from a plain text editor.

Can I use raw HTML inside Markdown? Yes, in most implementations — Markdown was designed to allow HTML to pass through unmodified for anything its own syntax doesn't cover. This is useful for things like custom line breaks, embedded iframes, or specific styling, though some platforms (especially ones rendering untrusted user content) disable or sanitize raw HTML for security reasons.

Why aren't my Markdown table columns aligning? Table columns don't need to visually line up in the source Markdown — the pipe characters (|) alone define the column boundaries, and the renderer handles the actual alignment. What does matter is the separator row directly under the header (made of dashes and pipes, like |---|---|), which must be present and correctly formatted or the table won't render as a table at all.

Want to see your Markdown rendered? Try the free Markdown to HTML tool — instant preview, no sign-up.