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.
Read the basics →HTML markup
Drop in raw HTML for underline, colour, accordions and image sizing when Markdown has no mark of its own.
See HTML markup →Compatibility
Which syntax works across CommonMark, GitHub, Obsidian, VS Code, Reddit and Pandoc.
Check compatibility →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.