Obsidian 是一个基于 Markdown 进行记录的知识库软件。
目前 Obsidian 支持的格式如下:
---
### Wiki 链接
```md
链接一篇笔记:[[内部链接]]。
```
链接一篇笔记:[[内部链接]]。
---
### 嵌入文件
在笔记中插入其他文件(更多细节请阅读[[嵌入文件]])。这里将演示如何插入一篇笔记的某个章节:
```md
![[Obsidian#什么是 Obsidian]]
```
![[Obsidian#什么是 Obsidian]]
---
### 小标题
```md
# 这是小标题 1
## 这是小标题 2
### 这是小标题 3
#### 这是小标题 4
##### 这是小标题 5
###### 这是小标题 6
```
# 这是小标题 1
## 这是小标题 2
### 这是小标题 3
#### 这是小标题 4
##### 这是小标题 5
###### 这是小标题 6
---
### 强调
```md
*这是斜体示例*
_这是斜体的另一种写法_
```
*这是斜体示例*
_这是斜体的另一种写法_
```md
**这是粗体示例**
__这是粗体的另一种写法__
```
**这是粗体示例**
__这是粗体的另一种写法__
```md
_你也**可以**将它们配合使用_
```
_你也**可以**将它们配合使用_
---
### 列表
```md
- 项目 1
- 项目 2
- 项目 2a
- 项目 2b
1. 项目 1
1. 项目 2
1. 项目 3
1. 项目 3a
1. 项目 3b
```
无序列表:
- 项目 1
- 项目 2
- 项目 2a
- 项目 2b
有序列表:
1. 项目 1
1. 项目 2
1. 项目 3
1. 项目 3a
2. 项目 3b
---
### 图片
```md
![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg)
```
![Engelbart](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg)
#### 调整图片大小
比如,将上面的示例图片调整为100像素宽:
```md
![Engelbart|100](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg)
```
![Engelbart|100](https://history-computer.com/ModernComputer/Basis/images/Engelbart.jpg)
---
### 其他链接
#### 外部链接
Markdown 风格的链接既可以用来指向网页这类外部对象,也可以用来指向库中的笔记或者图片。
```md
http://obsidian.md - automatic!
[Obsidian](http://obsidian.md)
```
http://obsidian.md - 自动化!
[Obsidian](http://obsidian.md)
#### Obsidian URI
[[使用 Obsidian URI|Obsidian URI]] 可以让你在其他应用或 Obsidian 的其他库中打开当前库的某篇笔记。
比如,你可以通过以下方式跳转到某个库中的某篇笔记(请注意 [[使用 Obsidian URI#编码|URI 的编码]]):
```md
[打开某篇笔记](obsidian://open?path=D:%2Fpath%2Fto%2Ffile.md)
```
[打开某篇笔记](obsidian://open?path=D:%2Fpath%2Fto%2Ffile.md)
除了通过笔记的地址来链接笔记外,你也可以通过笔记所在的库名称以及笔记名称来链接该笔记:
```md
[打开某篇笔记](obsidian://open?vault=MainVault&file=MyNote.md)
```
[打开某篇笔记](obsidian://open?vault=MainVault&file=MyNote.md)
#### 转义
如果 url 中含有空格的话,空格需要转义为 `%20`,如:
```md
[Export options](Pasted%20image)
```
[Export options](Pasted%20image)
当然,你也可以用 `<>` 将空格包含起来,如:
```md
[Slides Demo](<Slides Demo>)
```
[Slides Demo](<Slides Demo>)
---
### 引用
```md
> Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society.
\- Doug Engelbart, 1961
```
> Human beings face ever more complex and urgent problems, and their effectiveness in dealing with these problems is a matter that is critical to the stability and continued progress of society.
\- Doug Engelbart, 1961
---
### 行内代码
```md
一行中被 `反引号` 括起来的文字会以代码格式显示。
```
一行中被 `反引号` 括起来的文字会以代码格式显示。
---
### 代码块
Obsidian 会将六个反引号括起来的内容识别为代码块,并将其按代码格式显示。代码块支持语法高亮功能,你可以在代码块的第一行(即开头处的反引号后)声明语言来使用特定的语法高亮。
代码块的语法高亮实际是使用 prismjs 来实现的,因此你可以到[他们的网站](https://prismjs.com/#supported-languages) 来查看其支持的语言。
<pre><code>```js
function fancyAlert(arg) {
if(arg) {
$.facebox({div:'#foo'})
}
}
```</code></pre>
```js
function fancyAlert(arg) {
if(arg) {
$.facebox({div:'#foo'})
}
}
```
```md
如果你使用 Tab 键对段落进行缩进,这段文本在预览模式下也会被识别为代码块。
```
如果你使用 Tab 键对段落进行缩进,这段文本在预览模式下也会被识别为代码块。
---
### 任务列表
```md
- [x] 支持 #标签 ,[链接](),**样式**
- [x] 要求包含列表标志(有序表无序表均可,比如 `1.[x]` 同样可以)
- [x] 这是一个已经完成的项目
- [?] 这也是一个已完成的项目(实际上你可以在其中使用任何字符)
- [ ] 这是一个未完成的项目
- [ ] 在预览模式下单击选框可以切换项目完成状态
```
- [x] 支持 #标签 ,[链接](),**样式**
- [x] 要求包含列表标志(有序表无序表均可,比如 `1.[x]` 同样可以)
- [x] 这是一个已经完成的项目
- [?] 这也是一个已完成的项目(实际上你可以在其中使用任何字符)
- [ ] 这是一个未完成的项目
- [ ] 在预览模式下单击选框可以切换项目完成状态
---
### 表格
你可以使用 `-` 来分割表格的标题行和内容行,使用 `|` 来指定不同的列:
```md
| 标题1 | 标题2 |
| -------------- | -------------- |
| 单元格11的内容 | 单元格12的内容 |
| 单元格21的内容 | 单元格22的内容 |
```
| 标题1 | 标题2 |
| -------------- | -------------- |
| 单元格11的内容 | 单元格12的内容 |
| 单元格21的内容 | 单元格22的内容 |
---
| 列宽可以通过冒号来进行调整 | 这样你就可以在标题行中输入长标题 |
| :------------------------- | -------------------------------: |
| 因为 `:` 的存在 | 不同列将有不同的列宽 |
你可以在表格中添加链接,因为链接能在表格中正确显示。但如果你的链接中包含 `|`,则需要对其进行转义(用 `\|` 代替 `|`),以防止链接中的竖线被错误识别为列分隔符。
如果你在列表中添加链接,他们可以正常的显示与使用。但如果使用的是竖线链接,则需要在竖线前面加上 `\` 来进行转义,防止表格错乱。
```md
| 标题1 | 标题2 |
| -------------------------- | ------------------ |
| [[格式化你的笔记\|格式化]] | [[快捷键\|快捷键]] |
```
| 标题1 | 标题2 |
| -------------------------- | ------------------ |
| [[格式化你的笔记\|格式化]] | [[快捷键\|快捷键]] |
---
### 删除线
```md
在文字两端加上波浪线将会显示为删除效果,比如~~这样~~。
```
在文字两端加上波浪线将会显示为删除效果,比如~~这样~~。
---
### 高亮
```md
使用两个等号来对文本进行高亮==文本==。
```
使用两个等号来对文本进行高亮==文本==。
---
### 脚注
```md
H脚注的用法很简单,只需要在段落中需要插入脚注的地方标注一个符号,再在段落后对这个符号进行解释即可。比如这是一个简单的脚注,[^1] 这是一个长一些的脚注。[^长脚注]
[^1]: 很有用!
[^长脚注]: 这是一个可以写长段落或者代码的地方。
你可以使用缩进在脚注中纳入其他段落。
`{ 代码 }`
这样你就可以在脚注中添加任意数量的段落了。
```
脚注的用法很简单,只需要在段落中需要插入脚注的地方标注一个符号,再在段落后对这个符号进行解释即可。比如这是一个简单的脚注,[^1] 这是一个长一些的脚注。[^长脚注]
[^1]: 很有用!
[^长脚注]: 这是一个可以写长段落或者代码的地方。
你可以使用缩进在脚注中纳入其他段落。
`{ 代码 }`
这样你就可以在脚注中添加任意数量的段落了。
你也可以使用行内脚注。^[请注意符号^需要在方括号外]
### 数学公式
```md
$\begin{vmatrix}a & b\\
c & d
\end{vmatrix}=ad-bc$
```
$\begin{vmatrix}a & b\\
c & d
\end{vmatrix}=ad-bc$
你也可以像这样 $e^{2i\pi} = 1$ 使用行内公式。
这里的公式使用的是 LaTeX 语法,你可以到相应网站了解更多相关信息。
### 注释
所谓注释,指的是会在编辑模式中显示,但不会在预览模式中显示的内容。使用 `%%` 可以将内容变为注释。以下为语法:
```md
这里是行内注释:%%预览模式下你将看不到这句话%%
这里是跨行注释:
%%
所谓跨行
就是可以有很多行
%%
```
以下为示例:
这里是行内注释:%%预览模式下你将看不到这句话%%
这里是跨行注释:
%%
所谓跨行
就是可以有很多行
%%
### 图表
Obsidian 通过 [Mermaid](https://mermaid-js.github.io/) 及其所提供的[编译器](https://mermaid-js.github.io/mermaid-live-editor)来为用户提供图表的绘制功能。
<pre><code>```mermaid
sequenceDiagram
Alice->>+John: 嗨,John,最近怎样?
Alice->>+John: John,听得到我说话吗?
John-->>-Alice: 嗨,Alice,我能听到!
John-->>-Alice: 最近不错!
```</code></pre>
```mermaid
sequenceDiagram
Alice->>+John: 嗨,John,最近怎样?
Alice->>+John: John,听得到我说话吗?
John-->>-Alice: 嗨,Alice,我能听到!
John-->>-Alice: 最近不错!
```
## 开发小记
总的来说,我们在努力让 Obsidian 的语法不偏离正统的 Markdown 语法太多。总的来看,Obsidian 的语法大多还是基于 CommonMark,包括了一些 GitHub Flavored Markdown(GFM)和 LaTeX,以及我们特有的嵌入文件语法。