Markdown Basics
Markdown is the underlying writing language of Obsidian.
Markdown uses plain text symbols to express formatting, allowing you to keep your hands on the keyboard while writing and focus on content rather than layout.
This chapter covers the most commonly used Markdown syntax in Obsidian's daily use. All examples can be practiced directly in Obsidian.

For more Markdown content, refer to:https://www.example.com/markdown/md-tutorial.html
Headings
Markdown uses#the `#` sign to denote headings, with numbers from 1 to 6 corresponding to H1 through H6.
In Obsidian, headings have two additional functions: the Outline panel automatically generates a document outline based on headings, and other notes can use[[Note name#Heading]]to link directly to a specific heading.
Example
## Heading 2
### Heading 3
#### Heading 4
##### Heading 5
###### Heading 6
It is recommended to start using level-2 headings in the main text and leave level-1 headings for the note's main title. This makes the outline structure clearer and makes it easier to locate content via heading references later.
Text Formatting
For basic inline styles, simply wrap the text with the following symbols.
Example
__This is also bold__
**This is italic**
_This is also italic_
******This is bold and italic******
~~This is strikethrough~~
==This is highlighted==
Rendered result:
- Bold:This is bold
- Italic:This is italic
- Bold italic:This is bold and italic
- Strikethrough:
This is strikethrough - Highlight:This is highlighted
Among them,==Highlight==is an extension of standard Markdown by Obsidian, and may not work in regular Markdown editors.
Blockquotes
Use>the `>` symbol to create blockquotes, suitable for citing external sources or highlighting important content.
Example
>> This is another quote
>> It can span multiple lines
> > ### Headings can be nested in blockquotes
>
>Any Markdown syntax can be used inside a blockquote:
>> - List item
> - **> **Bold text****
In Obsidian, blockquotes have another special usage: add a label before the quote[!note]With this kind of label, the blockquote can become a Callout box.
Example
>This is a Callout box, more eye-catching than a regular blockquote.
> [!warning]Caution
>Deleting files in the Vault will also delete local files; please confirm before proceeding.
> [!tip]Tip
>Press Cmd+P to open the Command Palette to search for and execute all Obsidian commands.
Lists and Task Lists
Unordered List
Use-、*or+the `-` symbol to create an unordered list.
Sublists use indentation (Tab or two spaces) to indicate levels.
Example
- Python
- JavaScript
- Go
- Databases
- Relational
- MySQL
- PostgreSQL
- Non-relational
- MongoDB
- Redis
Ordered List
Use a number followed by.a period to create an ordered list. The numbers themselves do not need to be consecutive; Markdown will auto-increment.
Example
22. Create a new Vault
33. Create a new note
44. Start writing
Task List
use- [ ]Creates clickable checkboxes; this is one of the most frequently used syntaxes in Obsidian.
Example
- [ ]- [ ] Read Chapter 3 of "Computer Systems: A Programmer's Perspective"
- [ ]- [ ] Organize this week's study notes
- [x]- [ ] Complete Obsidian environment setup
- [x]- [ ] Learn basic Markdown syntax
In Obsidian, click the checkbox to toggle its completion status.
With the Dataview plugin, you can also aggregate all incomplete tasks across notes — this advanced usage will be covered in later chapters.
Code and Code Blocks
Inline Code
Use a single backtick`to wrap inline code or commands.
Example
In Python, the `print()``print()`function is used to output content.
Code Blocks
Use three backticks```to wrap multi-line code, and specify the language at the beginning to get syntax highlighting.
Example
# File path: hello.py
def greet(name):
"""""Greet the specified user."""""
return f"Hello, {name}!"
# Call the function and print the result
result = greet("example")
print(result)
```
Obsidian supports syntax highlighting for dozens of programming languages, including Python, JavaScript, C++, Java, Go, Rust, SQL, Bash, and more.
Tables
Use `|`|to separate columns, and use---`-` to separate the header row from the table body.
In---In rows, use:`:` to control alignment.
Example
|------|:--------:|-------|
| Python | 1991 | Guido van Rossum |
| JavaScript | 1995 | Brendan Eich |
| Go | 2009 | Robert Griesemer, Rob Pike, Ken Thompson |
| Rust | 2010 | Graydon Hoare |
Alignment rules:
- ---Left-aligned by default
- :---:Center-aligned
- ---:Right-aligned
Markdown tables do not support merging cells. If you need complex tables, consider using HTML's
<table>`<table>` tag; Obsidian supports embedding HTML directly in Markdown files.
Images and Links
Hyperlinks
The basic syntax is[display text](URL)。
Example
[GitHub](https://github.com "Title text displayed on hover")
Images
The syntax is similar to links; just add `!` before it.!。
Obsidian supports pasting images directly; it will automatically copy the image to the attachments folder and insert a reference into the current note.
Example

<!-- Local image (relative to the Vault root) -->

<!-- With size control (Obsidian extension syntax) -->

Obsidian extends the image syntax; you can add after the file name|widthto control the display size, for examplelimits the image width to 400 pixels.
Obsidian Exclusive: Internal Links
In addition to standard Markdown links, Obsidian provides[[Note name]]syntax to link to other notes in the Vault.
This is Obsidian's most core syntax, and the next chapter will expand on it in detail.
Horizontal Rule
Use three or more---、***or___to create a horizontal rule.
Example
Content...
---
## Part 2
Content...
Note the distinction:---A line on its own is a horizontal rule, but at the very top of the document,---the content between the markers is YAML Front Matter (see the next section). Obsidian automatically recognizes the context to decide whether it is a horizontal rule or Front Matter.
YAML Front Matter
Front Matter is a metadata block written at the very top of a note, wrapped in two sets of---markers.
It is used to define the properties of the note: tags, aliases, creation date, status, etc.
Example
title: "Obsidian Learning Notes"
tags:
- obsidian
- markdown
- Note-taking tool
aliases:
- Obsidian Getting Started
- Second Brain tutorial
created: 2026-05-21
status: In Progress
---
Common Front Matter field descriptions:
| Field | Type | Description |
|---|---|---|
| tags | String or array | The note's tags; nesting is supported, e.g.,Programming/Python |
| aliases | String or array | The note's aliases; other notes can link to this note via its aliases |
| created | Date | Creation date; can be auto-filled by the Templater plugin |
| updated | Date | Last updated date; some plugins can maintain it automatically |
| status | String | Note status, such as "Draft", "In Progress", "Completed" |
Field names in Front Matter are case-sensitive. It is recommended to standardize naming conventions within a team or project to avoidtagsandTagsinconsistent usage causing Dataview queries to miss data.
The core value of Front Matter lies in its use with the Dataview plugin — you can filter out all notes with the tag "obsidian" and the status "In Progress" just like querying a database.
Markdown Syntax Cheat Sheet
| Element | Syntax | Quick memory aid |
|---|---|---|
| Heading | # H1 ## H2 ### H3 | Hash sign + space + text |
| Bold | **text** | Wrapped in double asterisks |
| Italic | *text* | Wrapped in single asterisks |
| Strikethrough | ~~text~~ | Wrapped in double tildes |
| Highlight | ==text== | Wrapped in double equal signs (Obsidian extension) |
| Inline code | `code` | Wrapped in single backticks |
| Code block | ```language | Triple backticks + language name |
| Blockquote | > text | Greater-than sign + space |
| Unordered list | - Item | Minus sign + space |
| Task list | - [ ] Task | Minus sign + space + square brackets |
| Link | [text](url) | Square brackets + parentheses |
| Image |  | Exclamation mark + link syntax |
| Internal link | [[note name]] | Double square brackets (Obsidian extension) |
| Table | | Column 1 | Column 2 | | Separated by vertical bars |
| Horizontal rule | --- | Three hyphens alone on a line |