Markdown syntax
Markdown syntax is a small set of plain-text marks that a processor turns into formatted
HTML. You write with ordinary punctuation, such as # for a heading,
** for bold or - for a list item, and the text stays readable
before it is rendered.
The syntax comes in two layers. The core is the original 2004 syntax that every tool understands: headings, paragraphs, lists, links, images, code and quotes. On top of that, extensions add what longer documents need, like tables, task lists, footnotes and math.
Start here
Basics
Every core rule, with side-by-side examples of what you type and what it renders.
HTML markup
Drop in raw HTML for underline, colour, accordions and image sizing when Markdown has no mark of its own.
Cheat sheet
Every element and its syntax on one page for quick reference.
Compatibility
Which syntax works across CommonMark, GitHub, Obsidian, VS Code, Reddit and Pandoc.
Common questions
How do I create a table in Markdown?
Separate the columns with pipes and put a row of dashes under the header row. See Tables.
How do I add a link in Markdown?
Wrap the link text in square brackets and the URL in parentheses, like
[text](url). See Links.
How do I add an image in Markdown?
Use the same syntax as a link with an exclamation mark in front, like
. See Images.
How do I make text bold or italic in Markdown?
Wrap text in two asterisks for bold and one for italic, like **bold** and
*italic*. See Formatting.
How do I create a list in Markdown?
Start each line with a dash for a bullet list, or a number and a dot for an ordered list. See Lists.
How do I write a code block in Markdown?
Fence the code between lines of three backticks, and optionally name the language for syntax highlighting. See Code.