【笔记工具】Markdown语法与Obsidian编辑器
1 Markdown
1.1 什么是 Markdown
Markdown 是一种是目前互联网上最流行的写作语言,它使用一些简单的符号来标记文本格式,其简洁的语法、优美的格式以及强大的软件支持深受广大网友的喜爱。
Markdown 使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档。它的学习门槛很低,你可能只需花几分钟就可以入门了。
目前基本上所有的博客网站、在线文档等都支持 markdown 格式,尤其广泛应用于程序员领域,例如 Github 中的所有说明文档一般都是 .md
格式。
1.2 为什么使用 Markdown
Markdown 的出现主要是为了解决以下通点:
- 软件不兼容:例如不同版本的word、或者不同软件如office与wps,打开同一文档,可能有的正常,有的格式错误,有的乱码。
- 排版浪费时间:功能越多,我们就容易想得越多,遇到的问题也会越多。对于专注于写作的场景,有时可能并不需要那么多选项格式,例如行高行距字体颜色等等。而是要关注内容。同时word中每次写完一段文字,都要再手动为它选择格式,多的这一步操作可能就会打断思路。而markdown可以让你仅通过键盘,在写文档的同时完成格式的设置。
- 格式不兼容:复制同一段文字到另一个文档中,很有可能格式全乱了,同理复制到网页或从其他地方复制过来,格式也都是很麻烦的问题。
为了解决这些问题,Markdown 实现了以下功能:
- 语法简单:只需要一些简单地标记符号,例如
# * > - [] () =
- 兼容性强:所有的编辑器都可以打开
.md
文件,甚至记事本和vim都可以编辑 - 导出方便:可以导出PDF、也可以嵌入HTML、Latex等格式
- 专注内容:写作时双手无需脱离键盘,再也不用纠结排版问题
1.3 Markdown 怎么用
虽然所有的编辑器都可以编辑 Markdown 文件,但是为了更加直观,并且让我们有更好地写作体验,这里推荐两款所见即所得的 Markdown 编辑神器:Obsidian和Typora。前者是我现在一直在用的笔记软件,作为我的知识库管理工具,后者在我写作初期使用过,编辑体验也非常不错。
下图为 Obsidian:
下图为 Typora:
打开自己的 Markdown 编辑器,新建一个文件,就可以开始自己的创作了。
1.4 Markdown 基本语法
以下是一些比较常用的 Markdown 语法,按照我的常用顺序排列:
1. 标题
使用方式为:#
+ 空格
+ 标题文字
,注意#
号与标题文字
之间的空格
:
1 | # 一级标题 |
一级标题
二级标题
三级标题
四级标题
五级标题
六级标题
2. 倾斜
使用方式:*被倾斜的文字*
或者 _被倾斜的文字_
,快捷键 Ctrl+I
, 例如:
1 | 这里是正常文字,*这里是被倾斜的文字*,这里又是正常文字 |
这里是正常文字,这里是被倾斜的文字,这里又是正常文字
下划线在 Obsidian 中好像只能倾斜整行
3. 加粗
使用方式:**被加粗的文字**
或 __被加粗的文字__
,快捷键 Ctrl+B
, 例如:
1 | 这里是正常文字,**这里是被加粗的文字**,这里又是正常文字 |
这里是正常文字,这里是被加粗的文字,这里又是正常文字
下划线在 Obsidian 中好像只能加粗整行
1 | ***当然倾斜和加粗可以一起使用,那样就是三个星号*** |
当然倾斜和加粗可以一起使用,那样就是三个星号
也可以是三个下划线
4. 高亮
使用方式如下
1 | 这里是正常文字,==这里是被高亮的文字,但是不能换行,如果要对多段高亮,需要每一段使用高亮标记==,这里又是正常文字 |
这里是正常文字,==这里是被加粗的文字,但是不能换行,如果要对多段加粗,需要每一段使用加粗标记==,这里又是正常文字
1 | ***==当然倾斜和加粗可以一起使用,就像这样==*** |
==当然倾斜和加粗可以一起使用,那样就是三个星号==
==也可以是这样==
==也可以是下划线==
5. 列表
无序列表
使用+ -
标记无序列表,使用方式为+/-
+空格
+文字
,注意+/-
号与文字
之间的空格
。
1 | - 这是无序列表的第一项 |
- 这是无序列表的第一项
- 这是第二项
- 这是第三项
1 | + 这是无序列表的第一项 |
- 这是无序列表的第一项
- 这是第二项
- 这是第三项
有序列表
使用方式为数字
+.
+空格
+文字
。
例如:
1 | 1. 第一项 |
- 第一项
- 第二项
- 第三项
6. 引用
使用>
标记引用的内容,使用方式为>
+ 空格
+ 引用文字
,注意>
号与文字
之间的空格
。
1 | > 这是被引用的内容 |
这是被引用的内容
7. 代码
代码分为行内代码和代码块。
行内代码,使用方式如下:
1 | 这里是正常文字`code`文字继续 |
这里是正常文字code
文字继续
代码块,使用方式如下:
1 | ```代码格式(c, c++, python, html, java, css, yaml, shell ...) |
例如:
1 | ```python |
效果如下:
1 | import numpy as np |
8. 链接
链接的使用格式如下:
1 | [链接显示文字](链接地址) |
9. 图片
图片的使用格式如下:
1 | ![](图片地址) |
10. 分割线
分割线使用三个以上的*
或-
或_
组成,例如:
1 | 分割线之上 |
分割线之上
或者使用
再或者
就这些
11. 表格
表格的使用可能稍微有些繁琐,如果是在Obsidian中,可以有些插件简化表格的创建方式。
常规使用方式如下,注意中间的|-|-|-|
是不能删的,表格有几列就写几个|-|
:
1 | |表头1|表头2|表头3| |
表头1 | 表头2 | 表头3 |
---|---|---|
表格内容1 | 表格内容2 | 表格内容3 |
表格内容4 | 表格内容5 | 表格内容6 |
哦对,补充一下,为了表示直观,markdown使用空行分割两个段落
1
2
3 第一段
第二段
12.callout
使用> [!note]
就可以创建一个callout模块,例如:
1 | > [!INFO] |
默认有12种风格。每一种有不同的颜色和图标(标题中的单词可以替换 > ![替换]
实现下面效果)。
可以使用 +
默认展开或者 -
默认折叠正文部分。例如:
1 | > [!FAQ]- 点击就可以展开了 |
[!FAQ]- 点击就可以展开了
这里是callout的内容
2 Obsidian
2.1 为什么使用 Obsidian
Obsidian 很适合用来管理多层级多文件,因此很适合用来构建知识库
最初我使用 Obsidian 是因为我写的文章越来越多,当时使用 Typora 管理起来感觉不是很方便,而且那时正逢 Typora 更新至1.0后开始收费,而 Obsidian 开始展露头角,因此我尝试使用了 Obsidian,从此在我的所有设备的dock栏上,一定会有一个 Obsidian,只要我在使用电脑,Obsidian一定是处于打开状态的。
下图是我现在的 Obsidian 图
- 左边是文件列表、历史打开文件
- 右边是任务列表和日历(也可以切换为文档目录)
我自己的博客内容全部使用Obsidian存储,同时记录我的一些笔记和平时遇到的各种Bug,这样遇到相似问题时,直接使用全局搜索,就可以快速找到解决办法,亲测已经帮我解决了好多次问题,节约了大把时间。
个人不放心云笔记,Obsidian 是纯本地化文件编辑与管理
由于各种原因,我不想将我自己记录的一些内容全部放到云笔记上,一旦宕机或跑路,会是一件非常麻烦的问题,例如有道云笔记、印象笔记等等,OneNote等我也用过,但是迁移性太差,如果想换别的笔记软件,之前记录的东西根本不能导出。
而Obsidian则是使用的本地化文件管理,左侧的文件列表就是本地中真实存在的一个个文件夹和.md
文件。在多设备同步方面,推荐坚果云或者OneDrive实现多设备的实时同步。
Obsidian 的功能非常丰富,是一个笔记软件,又不止是一个笔记软件
对于我来说,我使用 Obsidian 完成了很多功能,当然最主要的还是记笔记,包括学习笔记、Bug 笔记、组会记录等等。
同时使用custom frames
插件能够将网页嵌入到 Obsidian 中,我将滴答清单加入了进来,这样就实现了上图右侧的任务管理功能。
此外我还写了一个自动化脚本,根据我的笔记库的内容修改,每天定时更新博客内容。
Obsidian 颜值非常高,有各种各样主题,而且几乎所有的样式格式都可以自定义修改
在外观这方面,我也折腾了一段时间,最终还是使用 Blue Topaz
主题,辅以Style Settings
插件中的一些个性化设置。总的来说没有修改太多。
网上也有一些开源的高度修改的库模板,下载下来就可以直接用,但是我找了一圈,发现自己还是更喜欢简约直接的,各位可以根据自己的审美找找看。
2.2 Obsidian 的特色功能
这里只介绍大致功能,具体使用方法,请参考 Obsidian 官方教程,或者下载Obsidian软件后,第一次打开会有示例库,我当时就是阅读那个学习的。
双向链接
不确定 Obsidian 是不是第一个双链笔记软件,但它也是最早的一批了。
双向链接,顾名思义就是双向引用的链接,例如我在A文章中使用[[B文章的标题或者小标题]]
,就可以实现文章和文章之间的链接,有点类似于网页链接,但是它是在笔记软件内跳转的。
在被引用的笔记中,你也可以看到这篇笔记被哪些其它笔记引用了。例如可能某篇[[Ubuntu系统Buglist]]
中的内容就可能被我在写其它实验笔记的时候引用很多次。
这样所有的笔记相互链接,就会形成一个庞大的关系图谱,Obsidian中也可以查看这个关系图谱。
此外,双向链接还可以使用![[文件名]]
或![[文件名#小节标题]]
这样的格式,在引用的同时,将那篇笔记的全部或某一节插入到当前文章中,例如:
模板
Obsidian 提供了模板的功能。
我创建了一个文件夹保存所有的模板。当我新建笔记后,可以直接插入现有的模板,例如我经常使用的论文笔记模板
1 | # X 论文名称 |
工作区保存与快速恢复
有的时候我可能会同时打开好几个笔记,比如实验笔记、论文笔记、Buglist等等,我会把他们分屏分开放在不同的位置,例如这样:
但是此时如果我需要去做另一件事,比如开会,我就需要把当前的这些笔记都关掉,打开会议记录,但是下次想要在恢复这个布局又比较麻烦。
这时候就可以点击左侧的管理工作空间布局按钮
,保存工作空间布局,然后就可以放心关闭了,下次使用点击加载工作空间布局就可以一键恢复之前的布局。
丰富的插件系统
Obsidian 提供了丰富的插件系统,有些可以增加 Obsidian 的功能,有些则是美化外观,有些可以提高编辑体验。
具体哪些插件我用过比较好用的,后续会持续在本文下面更新。
录音
写这篇文章,在查资料的时候突然发现Obsidian出了录音功能,在【设置-核心插件】里打开即可使用,打开后会在主页面最左侧添加一个图标,按下即可开始录音。
录音完成后,会保存在当前笔记文件中。
2.3 Obsidian 插件推荐
所有的插件都可以在插件市场中直接搜索下载,【设置-第三方插件-社区插件市场】
后续有时间再更新各个插件的介绍和使用详情
1. 提升编辑体验
Media Extended增强了媒体播放功能,包括链接到在线视频,速度控制,循环播放,字幕支持。
以及创建时间戳链接笔记,从在线视频、本地视频、录音中获取时间戳等等。
(目前测试似乎只能添加 Youtube 在线视频)
增强列表样式
- 可以上移下移缩进列表
- 增加列表垂直缩进线
- 增加折叠展开功能
优化创建表格的语法:输入一个|
,然后输入第一个标题,接着按下tab
,继续输入标题直到创建所有标题,然后按下Enter
转到第一行输入内容,以此类推。
当光标位于表格中时:
快捷键 | 动作 |
---|---|
Tab |
下一个单元格 |
Shift + Tab |
上一个单元格 |
Enter |
下一行 |
Ctrl + Shift + D |
打开表格控件侧边栏 |
2. 增加功能
日历插件,打开后会在右边侧栏出现日历。
点击日历上的日期,可以跳转到当天的每日笔记中(每日笔记也可以设置模板)
可以将任意的网页转换为obsidian窗格,非常不错。
例如我这里右侧的滴答清单:
image auto upload插件搭配PicGo使用,能自动将ob中插入的图片上传到图床中,优化图片插件体验。
在这里我使用的是阿里云OSS存储我的图片,具体可以参考:阿里云图床搭建方法或者[[01_阿里云图床搭建方法]]
非常直观的功能,就是在左侧文件列表增加最近打开的文件列表。
一个高效信息动态查询插件,当你拥有足够多的笔记后,可以用它来生成目录表格,并且支持各种查询限制条件。
相比较与 obsidian 自带的模板工具,他能实现更复杂的模板,设置更多的变量和函数,生成一些功能强大的模板。
能够在 Obsidian 中添加样式框的插件,能让笔记显得好看又有层次,可以配合着 Task、QuickAdd、Button 和 Dataview 等插件使用。
可快速添加信息,捕捉想法,采用模板新建笔记和添加宏命令,快速执行多项操作的好用又强大的插件。
可以添加一些自定义按钮,用来执行一些特定人物,例如一些命令或者打开链接或者结合 quickadd 实现一些自动化流程。
在笔记的开头添加和管理横幅图片,一般用于制作笔记主页时使用。
快速切换管理工作区的布局。你可以按照你不同的习惯,规划工作区。
通过将悬停弹窗变成一个功能齐全的编辑器,来增强核心的“页面预览”原有的功能。
3. 个性化设置
css片段管理插件,在右下角生成css管理菜单,点击后可方便的开关css片段。
obsidian的插件下载大致可分为两种,第一种是从ob软件内的官方渠道下载,第二种则是通过Github等渠道下载后再手动安装。
Obsidian42 - BRAT 可以帮助你直接安装社区插件市场无法安装的插件。
主题自定义设置插件,可以在现有主题的基础上,根据自己的需要进行魔改。