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 1
## 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 bold****
__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 a quote

>> 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

> [!note]Tip
>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

- Programming languages
    - 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

11. Open Obsidian
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

## Today's To-Do List

- [ ]- [ ] 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

Run `npm install` in the terminal`npm install`to install dependencies.
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

```python
# 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

|Language|Year created|Creator|
|------|:--------:|-------|
| 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

[EXAMPLE Tutorial](https://www.example.com)

[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

<!-- Online image -->
![EXAMPLE Logo](https://www.example.com/images/logo.png)

<!-- Local image (relative to the Vault root) -->
![Architecture diagram](attachments/architecture.png)

<!-- With size control (Obsidian extension syntax) -->
![Architecture diagram|300](attachments/architecture.png)

Obsidian extends the image syntax; you can add after the file name|widthto control the display size, for example![image|400](path)limits 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

## Part 1

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:

FieldTypeDescription
tagsString or arrayThe note's tags; nesting is supported, e.g.,Programming/Python
aliasesString or arrayThe note's aliases; other notes can link to this note via its aliases
createdDateCreation date; can be auto-filled by the Templater plugin
updatedDateLast updated date; some plugins can maintain it automatically
statusStringNote 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

ElementSyntaxQuick memory aid
Heading# H1 ## H2 ### H3Hash 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```languageTriple backticks + language name
Blockquote> textGreater-than sign + space
Unordered list- ItemMinus sign + space
Task list- [ ] TaskMinus sign + space + square brackets
Link[text](url)Square brackets + parentheses
Image![alt text](url)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
Other extensions