Obsidian Bidirectional Links and Knowledge Graph
Bidirectional links are the core capability that distinguishes Obsidian from traditional note-taking software. They are not simple hyperlink jumps, but a mechanism for knowledge toperceive each other— when you connect two notes, this relationship is visible at both ends simultaneously.
Internal Links: [[ ]] Syntax
In Obsidian, use[[note name]]to create a link to another note.
Type[[afterward, Obsidian will automatically pop up a search box, supporting fuzzy matching of note names.
Example
When learning[[Python Basics]], you need to first understand[[variables and data types]]。
These concepts, in[[object-oriented programming,]]are also used.
You can refer to[[Design Patterns]]for the factory pattern implementation.
Click the link to jump to the corresponding note.
If the note the link points to does not exist yet, Obsidian displays it as a gray link. After clicking, it willautomatically createthe corresponding blank note. This feature lets you naturally build a knowledge framework: draft links first, then fill in content note by note.
Alias Links
Sometimes a note's file name is not natural enough. Use[[file name|display text]]syntax to make the link text more consistent with the context.
Example
is a great reference article.
A better approach is to set aliases in the target note's Front Matter. After that, all links pointing to that note can use the aliases:
Example
aliases:
- Python OOP
- Python OOP
- Python Class Tutorial
---
Recommended alias usage: define standard aliases in the note's Front Matter, rather than using the pipe character each time|to rewrite temporarily. This way aliases are managed centrally, and a single modification takes effect across the entire vault.
Block References and Heading References
In addition to linking entire notes, you can also precisely reference specific paragraphs or headings within a note.
Heading Reference
Use[[note name#heading]]to directly link to a heading position in a note.
Example
For configuration, refer to[[Environment Setup#macOS Installation Steps]].
Block Reference
At the end of the target paragraph, add a^block ID, then in other notes use[[note name#^block ID]]to reference that paragraph.
Example
List comprehension is a concise syntax for creating lists in Python,
It can write loops and conditionals on one line. ^list-comp-def
In another note, reference this block:
Example
In the target note, the block reference will berendered as an embed, displaying the original content, rather than just a jump link.
Embedding an Entire Note or Paragraph
Add an exclamation mark before the link![[note name]], and you can embed the entire content of the target note into the current note.
Example
![[Python List Operations Cheat Sheet]]
![[Environment Setup#Environment Variable Configuration]]
Embedding is suitable for summary notes — for example, create a "Common References" note, embed the contents of multiple cheat sheet notes inside it, and form a dashboard view.
Backlinks Panel
This is one of Obsidian's most valuable features.
When you open a note, the "Backlinks" area in the right panel listsall other notes that reference the current note。
For example, you write a note on "Closures". One day, while writing "Python Decorators", you link to it. A few weeks later, you link to it again in "JavaScript Advanced Functions".
The moment you open "Closures", these associations automatically appear before you — no manual memorization needed, no index maintenance needed.
Linked Mentions vs Unlinked Mentions
The Backlinks panel is divided into two areas:
- Linked Mentions: places that have explicitly linked to the current note using the [[bidirectional link]] syntax
- Unlinked Mentions: places that mention the title text of the current note but have not added a [[ ]] link
Unlinked Mentions is a powerful tool for discovering "missed links" — you may have mentioned the word "Closures" in several notes but forgot to add a bidirectional link.
Relationship Graph
The Relationship Graph visually displays the linking relationships between notes.
Local Graph
In any note, click "More Options → Open Local Graph" in the top-right corner to display a link network centered on the current note.
The default display depth of the Local Graph is 1 level (direct neighbors), and you can adjust it to 2-5 levels to see broader connections.
Global Graph
Click the graph icon in the left sidebar to view the link relationship diagram of the entire vault.
Meanings of symbols in the graph:
- Node size: the more times it is linked, the larger the node — naturally highlighting the core concepts in your knowledge system
- Line thickness: if two notes link to each other, the line is thicker
- Node color: you can assign colors by path, tag, file name, and other conditions using the grouping feature
Graph Grouping and Filtering
In the Global Graph settings, you can create grouping rules:
Example
- path: Programming/
- Color: Blue
Group #2: Reading Notes
- path: Reading/
- Color: Green
Group #3: Diary
- path: Diary/
- Color: Gray
With grouping, the graph can clearly show the scale and cross-relationships of different fields at a glance.
Filters can hide nodes you don't need to display by keyword, tag, or file path, preventing the graph from becoming too dense.
The graph is more like a mirror, reflecting your existing knowledge structure, rather than a navigation tool. Don't spend too much time making it "look nice" — the real value lies in exposing isolated knowledge points and unexpected cross-disciplinary connections.
Unlinked Mentions: Complete Your Knowledge Graph
The Unlinked Mentions area at the bottom of the Backlinks panel lists all places that mention the current note's title but have not added a bidirectional link.
Regularly checking Unlinked Mentions is a low-cost way to organize knowledge: click the "Link" button next to each item to add a [[bidirectional link]] with one click.
This is similar to "patching leaks" in the knowledge network, turning originally invisible connections into explicit links.
Practical Tips for Writing with Bidirectional Links
| Stage | Approach |
|---|---|
| When first writing | Whenever a concept comes to mind, boldly add a [[link]], even if the target note does not exist yet. First build the framework, then fill in the content. |
| When finished writing | Take a quick look at Unlinked Mentions, check other keywords mentioned during editing, and confirm whether links should be added. |
| Regular maintenance | Browse the global graph and observe whether there are a large number of isolated nodes. If so, consider connecting them to existing core notes. |
| Avoid overdoing it | Not every sentence needs to become a link. Only link notes that substantially help in understanding the current content; better fewer but better. |